我有动态建表的代码如下:query1.close;
query1.sql.clear;
query1.sql.add('begin transaction');
query1.execsql;
try
query1.close;
query1.sql.clear;
query1.sql.add('create table .....');
query1.execsql;
query1.close;
query1.sql.clear;
query1.sql.add('commit');
query1.execsql;
except
query1.close;
query1.sql.clear;
query1.sql.add('rollback');
query1.execsql;
end;
原来数据源是BDE,代码运行正常;现在改为ADO,query1是ADOQuery,
程序运行到 query1.sql.add('commit'); 后面的 query1.execsql处
提示错误。
好象说是没有对应的Begin transaction,请问大虾是什么原因…… ………………Help………………!!!
query1.sql.clear;
query1.sql.add('begin transaction');
query1.execsql;
try
query1.close;
query1.sql.clear;
query1.sql.add('create table .....');
query1.execsql;
query1.close;
query1.sql.clear;
query1.sql.add('commit');
query1.execsql;
except
query1.close;
query1.sql.clear;
query1.sql.add('rollback');
query1.execsql;
end;
原来数据源是BDE,代码运行正常;现在改为ADO,query1是ADOQuery,
程序运行到 query1.sql.add('commit'); 后面的 query1.execsql处
提示错误。
好象说是没有对应的Begin transaction,请问大虾是什么原因…… ………………Help………………!!!
解决方案 »
- 让ICON动起来
- ValueListEdit控件中,如何在value域加入列表框,实现类似属性编辑框的数据输入窗体
- delphi怎样创建最小的exe 30k
- 为何动态创建FORM时,屏幕会闪?
- Paradox数据库的备份问题?
- 一个简单的查询问题,小弟是新手,请各位大哥帮我看看
- 多线程里用TBlobField上传图片报内存错误。
- 关于动态数组的问题,各位高人帮帮忙!!if(your answer=ok)and(your place<=4) then your mark:=your mark+10;
- 图片,大文本,二进制数据往数据库保存。难道只能用表的 BLOB字段么?
- 使用SQL进行数据查找怎么写语句呢?
- 求助!!
- procedure ShowMessageFmt(const Msg: string; Params: array of const)的例子???
var
TmpStr,TmpStr1 :string;
i:integer;
begin
TmpStr := Trim(SqlStr);
if TmpStr = '' then
begin
Result := False;
Application.MessageBox('没有可以执行的DML!','提示',MB_ICONINFORMATION + MB_OK);
Exit;
end;
with F_DataModule.Qry_Public do
begin
F_DataModule.DB_Public.StartTransaction;
try
i :=pos(RowSep,TmpStr);
if (i = 0) and (TmpStr <> '') then
i := Length(TmpStr) + 1;
while i <> 0 do
begin
TmpStr1 :=Copy(TmpStr,1,i - 1);
TmpStr :=Copy(TmpStr,i + 1,Length(TmpStr));
i :=pos(RowSep,TmpStr);
if (i = 0) and (Trim(TmpStr) <> '') then
i :=Length(TmpStr) + 1;
Close;
Sql.Clear;
Sql.Add(TmpStr1);
//sql.SaveToFile('c:\windows\desktop\aaa.txt');
Prepare;
ExecSql;
end;
//ApplyUpdates;
F_DataModule.DB_Public.Commit;
Result := True;//提交成功
except
F_DataModule.DB_Public.RollBack;
//CancelUpdates;
Result := False;//提交不成功
end;
end;
end;
ADOconnection.BeginTrans; //开始事务
try
query1.close;
query1.sql.clear;
query1.sql.add('create table .....');
query1.execsql; ADOConnection.CommitTrans; //提交事务
except
ADOConnection.RollBackTrans;//回滚事务
end;