while not ADOTable1.Eof do
ADOTable1.edit;
begin
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
我没见过这样写的!!!!!
改成:
while not ADOTable1.Eof do
begin
ADOTable1.edit;
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
ADOTable1.edit;
begin
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
我没见过这样写的!!!!!
改成:
while not ADOTable1.Eof do
begin
ADOTable1.edit;
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
解决方案 »
- DELPHI 异常处理 提示错误信息
- TCPSERVER和TCPCLIENT通讯问题?
- 怎样设置得窗体上的相同的属性?
- 如何建立合法的SQL SERVER用户名和密码
- 不知道有没有人知道这是哪个国家的语言文字(编程技术文章)???要是没人知道,就当是散分吧!
- sql问题
- fastReport 3.0的问题
- 要在客户端IE中运行ACTIVEFORM除了降低IE的安全级别外,还有什么方法?(不好意思!分数不多了!)
- 如何在DELPHI程序中实现:把剪切板中的字符内容 粘贴到外部程序的输入框中去。
- 如何对dbgrid排序?
- 我要把QryStation里面的字段Point找出来,其中怎么找?用SQL语句
- 从一个表A中提取一部分数据追加至另一个表B中,如何实现?
var aa:string;
begin
aa:=copy(edit3.text,1,6);
ADOTable1.Open;
ADOTable1.first;
while not ADOTable1.Eof do
begin
ADOTable1.edit;
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
ShowMessage('更新成功!');
end;
其次用BatchUpdate
而每次next后,post似乎不太好
var aa:string;
begin
aa:=copy(edit3.text,1,6);
ADOTable1.Open;
ADOTable1.first;
ADOTable1.edit;
while not ADOTable1.Eof do
begin
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.next;
end;
ADOTable1.post;
ShowMessage('更新成功!');
end;
procedure TForm1.Button1Click(Sender: TObject);
var aa:string;
begin
aa:=copy(edit3.text,1,6);
ADOTable1.Open;
ADOTable1.first;
while not ADOTable1.Eof do
begin
ADOTable1.edit;
ADOTable1.FieldValues['kjqj']:=aa;
ADOTable1.FieldValues['pzrq']:=edit3.text;
ADOTable1.post;
ADOTable1.next;
end;
ShowMessage('更新成功!');
end;后出错提示为:
Violation of Primary key constraint 表名一.
Cannot insert duplicate key in object 表名二。
记录重复了!看下面代码可以得到提示:
-------------------------------------
ADOQ_temp.Close;
ADOQ_temp.SQL.Clear; ADOQ_temp.SQL.ADD('select * from T_CompInfo' +
' where CCompCode=:CCompCode' +
' and CYear=:CYear');
ADOQ_temp.parameters[0].Value := aBag.AsString(0);
ADOQ_temp.parameters[1].value := aBag.AsString(1); ADOQ_temp.open;
if ADOQ_temp.RecordCount = 0 then // <-----这里
ADOQ_temp.Insert // <-----插入
else
begin
ADOQ_temp.Edit; // <-----更新
end; ...
ADOQ_temp.Post
在指向你需要的位置了
解决方法我看前面应该有