如何在新增记录时,合并某一字段相同记录?(50分)

  • 主题发起人 zhanghui127
  • 开始时间
Z

zhanghui127

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在新增记录时,合并新增字段中某一字段相同记录?在DBGrid中显示。

如: a b c 1 d f
a b c 2 d f
合并为: a b c 3 d f
 
问:
在新增记录的时候,可以修改表的结构吗?好象不行吧?还是我理解错了你的意思?
 
这个问题不难呀,做几次循环找到字段相同多的,然后合并其中不同的项。
多想一下就可以了
 
procedure TForm1.Button1Click(Sender: TObject);
var Source,sql:string;
begin
if query1.active then query1.close;
query1.sql.clear;
sql:='select field1 from table1 order by field1';// 加上排序字段
query1.sql.add(sql);
try
query1.open;
query1.first;
Source:=query1.fieldbyname('aaa').asstring;
table1.AppendRecord([Source]);
query1.Next;
while not query1.eof do
begin
if query1.fieldbyname('field1').asstring<>Source then
begin
table1.AppendRecord([Source]);
end;
query1.Next;
Source:=query1.fieldbyname('field1').asstring;
end;
finally
query1.close;
end;
end;
 
就像超市里一样。
 
像超市一样,怎么实现?
 
如果是INT或FLOAT型,可以考虑下SQL 中的GROUP BY
 
很简单,增加的时候首先删除记录后增加。
删除当然是根据你要合并的字段来。
 
同意楼上的意思,在记录编辑完成后,作一下检查,如果有相同的商品,把数量合计一下,
再删除一条。
 
记录还在缓存中。这方法不行。
 
最好的办法是改数据库,增加一个trigger,自动实现你的需求,程序端完全是透明的,
无论你用什么方式插入记录,总是自动按你需要的方式处理
 
由触发器也不行,因为还要时时判断不能大于某值。
 
我已相通,谢谢大家。
 
多人接受答案了。
 
顶部