如题, 怎样在一个TQuery 中写多条SQL 语句例: 数据库中可以写成
delete from X where a=:a
/
delete from Y where a=:a
/
delete from Z where a=:a 请问在 TQuery 的SQL 中 想要实现这样的功能要怎样做?
delete from X where a=:a
/
delete from Y where a=:a
/
delete from Z where a=:a 请问在 TQuery 的SQL 中 想要实现这样的功能要怎样做?
解决方案 »
- delphi中怎么尽量减小exe文件大小?代码长短和窗体控件大小那个关系大?
- 诸位高手,有没有投挡算法的例子,DELPHI的或者SQL SERVER的
- 关于TClientDataSet的问题
- 串口通讯协议征答
- 如何将 delphi 和sql server 连接?
- 如何生成.exe文件
- 怎样让treeview中不同级的节点按不同的规则排序?
- ★★如何实现按一下按钮可以终止一个正在运行中的循环?请举个例子,谢谢!
- CSDN ~薪水調查~ ~行業調查~ ~工齡調查~ ~工作城市~ ~OICQ~
- 大家好,请问那里有常用的AP函数下载!!!!
- teechart中标志说明浮点控制
- 关于Query执行存储过程的问题。
adoquery1.SQL.Add('delete from a where a=''2''');
adoquery1.SQL.Add('delete from a where a=''3''');
ADOQuery1.ExecSQL;
可以参考以下二种方法: (1)利用存储过程
(2)在客户端
with adoquery1 do begin
close;sql.clear;
sql.add('delete from :aTableName where a=:aParm ');
parameters.paramByName('aTableName').value:=aTb1;
parameters.paramByName('aParm').value :=aPm1;
execsql;close;
parameters.paramByName('aTableName').value:=aTb2;
parameters.paramByName('aParm').value :=aPm2;
execsql;close;
parameters.paramByName('aTableName').value:=aTb3;
parameters.paramByName('aParm').value :=aPm3;
execsql;close;
end;
delete from X where a=:a
/
delete from Y where a=:a
/
delete from Z where a=:a commit tran
adoquery1.SQL.Add('delete from a where a in(''1'', ''2'', ''3''');
ADOQuery1.ExecSQL;
這樣就可以執行的
有些情况下,在sql语句后加特殊符号也行,比如分号";"什么的
adoquery1.SQL.Add('delete from a where a=''2''');
adoquery1.SQL.Add('delete from a where a=''3''');
ADOQuery1.ExecSQL; 这么写是不对的,Sql-Server数据库是支持多条语句的,但 adoquery里面这么写是不对的。 还是写个存储过程吧,如果只是执行连续的delete 语句,不想写存储过程,可以用 AdoCommand,不要用ADOquery
begin
CommandText := 'delete from OrderList where id<50';
Execute;
CommandText := 'delete from OrderList where id<100';
Execute;
CommandText :=' delete from OrderList where id<200';
Execute;
end;
测试了一下,这么写没有问题的!