读取文本数据插入到数据库过程中,如何判断要插入的值已经存在了?
比如:文本数据如下
user_name addr tele
小苏 某市**公司 23102510
小苏 某市**公司 13534265781
小苏 某市**公司 020-23102510
我的程序是作逐行插入的,也就是说第一条记录是已经插入了
假如接着的第二条记录的user_name跟上一条记录相同,那么我要只作更新tele字段的值,该如何写
关键是如何判断这条要插入的记录user_name与上一条记录(相邻的)相同
如果相同则作更新tele操作,否则新添加记录
当我读入数据并插入到数据表的时候,当user_name相同的时候,tele字段我只要最后一个记录(即020-23102510)关键是如何跟插入的上一条记录作比较判断?谢谢大家!(插入最好用table来实现)
注:逐行读取文本>插入到数据库 我已经实现,就是不会判断在作插入操作前如何跟表里边的上一条记录作比较,希望得到大家的帮助,谢谢!
比如:文本数据如下
user_name addr tele
小苏 某市**公司 23102510
小苏 某市**公司 13534265781
小苏 某市**公司 020-23102510
我的程序是作逐行插入的,也就是说第一条记录是已经插入了
假如接着的第二条记录的user_name跟上一条记录相同,那么我要只作更新tele字段的值,该如何写
关键是如何判断这条要插入的记录user_name与上一条记录(相邻的)相同
如果相同则作更新tele操作,否则新添加记录
当我读入数据并插入到数据表的时候,当user_name相同的时候,tele字段我只要最后一个记录(即020-23102510)关键是如何跟插入的上一条记录作比较判断?谢谢大家!(插入最好用table来实现)
注:逐行读取文本>插入到数据库 我已经实现,就是不会判断在作插入操作前如何跟表里边的上一条记录作比较,希望得到大家的帮助,谢谢!
比如:文本数据如下
user_name addr tele
小苏 某市**公司 23102510
小苏 某市**公司 13534265781
小苏 某市**公司 020-23102510
然后:
if table.recordCount<>0 then
begin
做修改操作;
end
else begin
做插入操作
end;
---------------------------------------
楼上的:用table的话,怎么支持sql查询呢?
能否具体点?
if Locate(user_name,Edit1.Text,GetSearchOption)=True then //如果找到
begin
Table1.DataSource.DataSet.
Table1.DataSource.DataSet.FieldByName('Tele').AsString:=Edit2.Text;
Table1.DataSource.DataSet.Post
else
Table1.InsertRecord([Edit1.Text,Edit2.Text]);
我做文本读入的时候用的是tStringList类读入的,我真是笨极了
只要在循环插入数据之前先给last_name变量赋一个空值,然后再在插入语句前作一个判断
当user_name = last_name时就作
table.edit操作,否则作table.append操作就可:
last_name := ''for循环
begin
if last_name = user_name
begin
table.edit操作
last_name := user_name
end else
begin
table.append操作
last_name := user_name
end
end非常感谢hatum(hatum)朋友的提点!!!
解决了问题就是高兴,结帖。再次感谢!!!