为什么在ADOQuery里面用update有时能修改有时没有效果呢?

时间:2022-02-11 08:06:46
ADOTable1.Active:=False;
  SQLStr:='update Tab set Name='+Quotedstr(Edit1.Text)+','+'Date='+Quotedstr(DateToStr(Date))+'where Name='+Quotedstr(NameStr)+'and Date='+Quotedstr(DateStr);
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(SQLStr);
  ADOQuery1.ExecSQL;
  ADOTable1.Active:=True;//这的意思是修改的效果在DBGRID1里面显示出来,ADOTABLE1是连接到DataSource1的,而DataSource1连接到DBGRID1里面,有时我第一次修改没有效果,我再修改一次就可以修改了,为什么呢?

8 个解决方案

#1


把ADOTable1.Active:=True;这句话放到
SQLStr:='update Tab set Name='+Quotedstr(Edit1.Text)+','+'Date='+Quotedstr(DateToStr(Date))+'where Name='+Quotedstr(NameStr)+'and Date='+Quotedstr(DateStr);
这段话之前.

#2


//应该不会有问题
  ADOTable1.Active:=False;
  SQLStr:='update Tab set Name='+Quotedstr(Edit1.Text)+','+'Date='+Quotedstr(DateToStr(Date))+' where Name='+Quotedstr(NameStr)+' and Date='+Quotedstr(DateStr);
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(SQLStr);
  ADOQuery1.ExecSQL;
  ADOTable1.Active:=True;

#3


你在执行完插入代码后,
查询一遍
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * form Tab');
  ADOQuery1.Open;

#4


打错了,是select * from Tab

#5


我想应该没有什么问题。
但是就在进行操作的时候第一次是不能修改的,可能要第二次或是第三次才可以修改。

#6


数据库更新需要时间,在ADOTable1.Active:=True;前sleep(100)一下,就可以了。

#7


实在不行不要用adotable了用adoquery吧

#8


你确保你的CONNECTION打开了吗??

#1


把ADOTable1.Active:=True;这句话放到
SQLStr:='update Tab set Name='+Quotedstr(Edit1.Text)+','+'Date='+Quotedstr(DateToStr(Date))+'where Name='+Quotedstr(NameStr)+'and Date='+Quotedstr(DateStr);
这段话之前.

#2


//应该不会有问题
  ADOTable1.Active:=False;
  SQLStr:='update Tab set Name='+Quotedstr(Edit1.Text)+','+'Date='+Quotedstr(DateToStr(Date))+' where Name='+Quotedstr(NameStr)+' and Date='+Quotedstr(DateStr);
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(SQLStr);
  ADOQuery1.ExecSQL;
  ADOTable1.Active:=True;

#3


你在执行完插入代码后,
查询一遍
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * form Tab');
  ADOQuery1.Open;

#4


打错了,是select * from Tab

#5


我想应该没有什么问题。
但是就在进行操作的时候第一次是不能修改的,可能要第二次或是第三次才可以修改。

#6


数据库更新需要时间,在ADOTable1.Active:=True;前sleep(100)一下,就可以了。

#7


实在不行不要用adotable了用adoquery吧

#8


你确保你的CONNECTION打开了吗??