读取文本数据插入到数据库过程中,如何判断要插入的值已经存在了?
比如:文本数据如下
user_name addr tele
小苏 某市**公司 23102510
小苏 某市**公司 13534265781
小苏 某市**公司 020-23102510
我的程序是作逐行插入的,也就是说第一条记录是已经插入了
假如接着的第二条记录的user_name跟上一条记录相同,那么我要只作更新tele字段的值,该如何写
关键是如何判断这条要插入的记录user_name与上一条记录(相邻的)相同
如果相同则作更新tele操作,否则新添加记录
当我读入数据并插入到数据表的时候,当user_name相同的时候,tele字段我只要最后一个记录(即020-23102510)关键是如何跟插入的上一条记录作比较判断?谢谢大家!(插入最好用table来实现)
注:逐行读取文本>插入到数据库 我已经实现,就是不会判断在作插入操作前如何跟表里边的上一条记录作比较,希望得到大家的帮助,谢谢!

解决方案 »

  1.   

    坏了,怎么csdn的排版总是出些问题的?
    比如:文本数据如下
    user_name addr tele
    小苏 某市**公司      23102510
    小苏 某市**公司      13534265781
    小苏 某市**公司      020-23102510
      

  2.   

    现进行一次查询, 用select * from 表名 where 关键字段='你将要插入的记录'
    然后:
    if table.recordCount<>0 then
    begin
      做修改操作;
    end
    else begin
      做插入操作
    end;
      

  3.   

    现进行一次查询, 用select * from 表名 where 关键字段='你将要插入的记录'
    ---------------------------------------
    楼上的:用table的话,怎么支持sql查询呢?
    能否具体点?
      

  4.   

    如果是在整个表中,查找有没有用户名相同的记录:
    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]);
      

  5.   

    非常感谢hatum(hatum)朋友的热心回答
    我做文本读入的时候用的是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)朋友的提点!!!
    解决了问题就是高兴,结帖。再次感谢!!!