比如
strSQL := 'Update emp set ename = ''haha'' where empno = '1235'';
strSQL := 'Update emp set ename = ''hoho'' where empno = '1236'';
strSQL := 'Update emp set ename = ''hehe'' where empno = '1237'';
strSQL := 'Update emp set ename = ''hihi'' where empno = '1238'';
对TQuery什么样的操作可以把这些SQL语句一次更新到数据库呢?
JAVA里面好象是先调用Prepare方法.最后调用Execult方法可以批处理的.
谢谢老大^^
strSQL := 'Update emp set ename = ''haha'' where empno = '1235'';
strSQL := 'Update emp set ename = ''hoho'' where empno = '1236'';
strSQL := 'Update emp set ename = ''hehe'' where empno = '1237'';
strSQL := 'Update emp set ename = ''hihi'' where empno = '1238'';
对TQuery什么样的操作可以把这些SQL语句一次更新到数据库呢?
JAVA里面好象是先调用Prepare方法.最后调用Execult方法可以批处理的.
谢谢老大^^
解决方案 »
- delphi 中提取 webbrowser鼠标单击的超链接的文字内容
- 无向图中,如何计算从任一点开始,路径等于3的所有目标点
- 请问Delphi如何按要求的格式把SQL Server 2005 数据库中表的内容输出成excel文档?
- 大家好,我想问一个关于TLabel的问题!
- 散分,,,,
- 请问在DBGRID中,怎么实现按DEL键将选中的记录删除?
- Help me.
- 要计算两个日期之间相隔的天数,应该怎样写代码?
- 我做了一张销售表,单价和数量是人输入,小计(单价*数量)为自动生成,总合计(各项小计之和)为自动生成,请问该如何操作能达到这个效
- 通过ado连接到数据库,如果连接不成功,怎样拦截错误.
- 自己设计一个简单的报表编辑工具遇到的控件拖放问题
- ★★★ 庆祝结婚,散分纪念,欢迎捧场,谢谢! ★★★
用事务,不用Tadoquery等组件:
procedure TForm1.Button1Click(Sender: TObject);
begin
adoconnection1.begintrans;
try
adoconnection1.execute(update 语句);
如果还有insert 语句则:
adoconnection1.execute(update 语句);直到所有update语句完成.
adoconnection1.committrans;
except
adoconnection1.rollbacktrans;
end;
end;
SQL Server支持一次执行多条SQL语句的,直接放在SQL.Text就可以
比如:
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * From Table1');
SQL.Add('Update Table2 Set Field1=1');
Open;
end;
两条语句都会被执行
strSQL:='update emp set ename=(case empno when '1235'' then ''haha''
when '1236'' then ''hoho''
when '1237'' then ''hehe''
when '1238'' then ''hihi''
end)'
可是我的数据量比较大,数W条语句一条条执行的话可能比较慢.
用CASE我也想过,但这个语句是不是长的有点........@_@
我还试过用QUERY1.EDIT.
也行不通.....还有什么办法吗?
那个QUERY1.Prepare方法具体是怎么用的呢.谢谢^_^
比如这样(根据JAVA设想的):
for x to y do
begin
QUERY1.SQL.ADD('UPDATE EMP SET EMPNO = x where .......');
QUERY1.Prepare;
end;
QUERY1.EXECULTSQL;
for x to y do
begin
cmd1.sql.add('....');
end;
cmd1.execute;
.
.
.
adoconnection1.rollbacktrans;
能说清楚点吗?
拜托啦^0^
否则如果是循环的话,那就惨了。
//UPDATE语句1
//UPDATE语句2
//UPDATE语句3
adoconnection1.rollbacktrans;