用ADOQuery执行两条SQL语句,第二条有语法错误,但是Delphi不报错,Why? 我用ADOQuery同时执行两条SQL语句,第一条正确,第二条有语法错误,但是在执行的时候,Delphi却不报错,一切显示正常。要命!要命!那位大侠能解决,谢谢!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 with adoqQuery dobegin Close; Sql.Clear; Sql.Add(' update 表一 set 字段一 = 'AA' '); //这句没错 Sql.Add(' update 表二 set 字段二 = 'BB' '); //假如表二的名称我写错了, //即表二根本不存在 ExecSQL;end;在执行时Delphi根本不报错。 with adoqQuery dobegin Close; Sql.Clear; Sql.Add(' update 表一 set 字段一 = 'AA' '); ExecSQL; close; Sql.Add(' update 表二 set 字段二 = 'BB' '); ExecSQL; end; with adoqQuery dobegin Close; Sql.Clear; Sql.Add(' update 表一 set 字段一 = 'AA' '); ExecSQL; close; Sql.Clear;//加了一句 ~_~ Sql.Add(' update 表二 set 字段二 = 'BB' '); ExecSQL; end; to ysycrazy(风中狂) ,thisisxutao(Probational 1.0) :我的问题是这只是个例子,实际并非仅两条语句,而是有多条复杂语句,并且要加事务处理,这时候要是其中一条出问题,就要命了。不知道是否可以通过设置adoconnect和adoquery的属性解决。 SP是一个办法,你的问题应该是SQL语句的写法不标准造成的,你第二句写对表明也无法执行!你写成:adoquery.sql.text='update 表一 set 字段一 = ''AA'';' +'update 表二 set 字段二 = ''BB''';执行看看 两条独立的SQL要一起执行的话,要加‘;’ delphi在编译的时候不检查sql语句的语法错误;只是在执行到这句代码是才报错; with adoqQuery dobegin Close; Sql.Clear; Sql.Add(' update 表一 set 字段一 = 'AA' '); ExecSQL; close; Sql.Clear;//加了一句 ~_~ Sql.Add(' update 表二 set 字段二 = 'BB' '); ExecSQL; end; 当然不报错了,你的第二条sql编译器根本看不到,你可以试试男竹的方法 try ADOConnection1.BeginTrans; with adoqQuery do begin Close; Sql.Clear; Sql.Add(' update 表一 set 字段一 = 'AA' '); ExecSQL; close; Sql.Clear; Sql.Add(' update 表二 set 字段二 = 'BB' '); ExecSQL; end; ADOConnection1.CommitTranss; except ADOConnection1.RollbackTran; end; [求助]关于TSaveDialog的问题 EXE程序转化成dll程序,应该怎么转化? 调用资源管理器的问题 图形处理高手请显身,超菜的问题 怎样伪装我的IP地址! 请问以下两个保存数据的方法哪个快 在三层结构中如何将数据库中的一张表导出成一.db文件? 这是什么错?求解。 有文件a.mdb,b.mdb;现在想实现,删除a.mdb,将b.mdb拷贝成a.mdb 非高手不要入内 我是菜鸟,我用delphi7,怎么找不到quick report??? 初学存储过程,请问如下一个存储过程有什么问题?
begin
Close;
Sql.Clear;
Sql.Add(' update 表一 set 字段一 = 'AA' '); //这句没错
Sql.Add(' update 表二 set 字段二 = 'BB' '); //假如表二的名称我写错了,
//即表二根本不存在
ExecSQL;
end;
在执行时Delphi根本不报错。
begin
Close;
Sql.Clear;
Sql.Add(' update 表一 set 字段一 = 'AA' ');
ExecSQL;
close;
Sql.Add(' update 表二 set 字段二 = 'BB' ');
ExecSQL;
end;
begin
Close;
Sql.Clear;
Sql.Add(' update 表一 set 字段一 = 'AA' ');
ExecSQL;
close;
Sql.Clear;//加了一句 ~_~
Sql.Add(' update 表二 set 字段二 = 'BB' ');
ExecSQL;
end;
我的问题是这只是个例子,实际并非仅两条语句,而是有多条复杂语句,并且要加事务处理,这时候要是其中一条出问题,就要命了。
不知道是否可以通过设置adoconnect和adoquery的属性解决。
+'update 表二 set 字段二 = ''BB''';
执行看看 两条独立的SQL要一起执行的话,要加‘;’
只是在执行到这句代码是才报错;
begin
Close;
Sql.Clear;
Sql.Add(' update 表一 set 字段一 = 'AA' ');
ExecSQL;
close;
Sql.Clear;//加了一句 ~_~
Sql.Add(' update 表二 set 字段二 = 'BB' ');
ExecSQL;
end;
ADOConnection1.BeginTrans;
with adoqQuery do
begin
Close;
Sql.Clear;
Sql.Add(' update 表一 set 字段一 = 'AA' ');
ExecSQL;
close;
Sql.Clear;
Sql.Add(' update 表二 set 字段二 = 'BB' ');
ExecSQL;
end;
ADOConnection1.CommitTranss;
except
ADOConnection1.RollbackTran;
end;