var a,s:string;
begin s:='update person set id='''+dbedit1.text+''',groupid='''+dbedit2.text+''',firstname='''+dbedit3.text+''',lastname='''+dbedit4.text+''',chinesename='''+dbedit5.text+''',sex='''+dbedit9.text+''',nationality='''+dbedit10.text+''',birth='''+dbedit11.text+''',passport_type='''+dbedit12.text+''',passport_num='''+dbedit13.text+''',place='''+dbedit16.text+''',mate_name='''+dbedit17.text+''',mate_nationality='''+dbedit18.text+''',over_date='''+dbedit9.text+''',duty='''+dbedit20.text+'''';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(s);
adoquery1.ExecSQL;
end;
其中PERSON表是本地access数据库的的表。。id为主键为,除了OVER_DATE为日期数据类型外。其他的都是字符类型。为什么我修改的时候会出现提示说我在试图在索引、主键创建重复的值。事实上并没有重复啊。请大家帮帮忙!!在线等待。谢谢
begin s:='update person set id='''+dbedit1.text+''',groupid='''+dbedit2.text+''',firstname='''+dbedit3.text+''',lastname='''+dbedit4.text+''',chinesename='''+dbedit5.text+''',sex='''+dbedit9.text+''',nationality='''+dbedit10.text+''',birth='''+dbedit11.text+''',passport_type='''+dbedit12.text+''',passport_num='''+dbedit13.text+''',place='''+dbedit16.text+''',mate_name='''+dbedit17.text+''',mate_nationality='''+dbedit18.text+''',over_date='''+dbedit9.text+''',duty='''+dbedit20.text+'''';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(s);
adoquery1.ExecSQL;
end;
其中PERSON表是本地access数据库的的表。。id为主键为,除了OVER_DATE为日期数据类型外。其他的都是字符类型。为什么我修改的时候会出现提示说我在试图在索引、主键创建重复的值。事实上并没有重复啊。请大家帮帮忙!!在线等待。谢谢
解决方法:
在后面加一个限定条件: where id=原来的ID
我想修改当前指针所指的数据。。
这样可以吗?
begin s:='update person set id='''+dbedit1.text+''',groupid='''+dbedit2.text+''',firstname='''+dbedit3.text+''',lastname='''+dbedit4.text+''',chinesename='''+dbedit5.text+''',sex='''+dbedit9.text+''',nationality='''+dbedit10.text+''',birth='''+dbedit11.text+''',passport_type='''+dbedit12.text+''',passport_num='''+dbedit13.text+''',place='''+dbedit16.text+''',mate_name='''+dbedit17.text+''',mate_nationality='''+dbedit18.text+''',over_date='''+dbedit9.text+''',duty='''+dbedit20.text+''' where id='''+原来的ID+'''';{看这里前面一些,看那个where就是这样加的}
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(s);
adoquery1.ExecSQL;
end;