高手请近来看看!(10分)

  • 主题发起人 主题发起人 zh_2001
  • 开始时间 开始时间
Z

zh_2001

Unregistered / Unconfirmed
GUEST, unregistred user!
当我执行如下代码是出现错误:
procedure TForm1.Button1Click(Sender: TObject);
begin
with query2 do
begin
edit;
insert;
close;
SQL.clear;
SQL.Add('insert into show128_sql(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s13,s15,s16,s17,s18,s19,s21,s22,s23,s24,s25) select * from show128_sql_temp');
SQL.Add('update show128_sql set s0=getdate()');
execSQL;
post;
open;
end;
end;

错误是:query2: dataset not in edit or insrt mode
怎么回事?
怎么设置才能插入、更新表?
 
把这两句取掉
还有一个query只能制定一条语句
把insert和update分开写
 
在更新前要把QUERY的REQUESTLIVE属性设成TRUE
另外,如果你使用的是prodax等本地数据库并在更新之前进行过排序查询操作,也会出现
这个问题,解决的办法是使用updatasql控件,具体用法可以查找旧帖子
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with query2 do
begin
close;
SQL.clear;
SQL.Add('insert into show128_sql(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s13,s15,s16,s17,s18,s19,s21,s22,s23,s24,s25) select * from show128_sql_temp');
execSQL;

SQL.clear;
SQL.Add('update show128_sql set s0=getdate()');
execSQL;
end;
end;
你要去掉多余的edit,insert,post,open语句,另外,两个SQL语句最好分开写,方便调试,
而且,大多数的数据库不支持连续的两句SQL,分开写就可以适应更多的数据库应用。
 
接受答案了.
 
后退
顶部