mssql 2k数据库
在数据模板中有一TDatabase控件 APPDB,连数据库,建别名就是APPDB在某个函数中我一般是这么用:
procedure xxxx;
var qrysev,tmpqry:Tquery;
begin
qrysev := TQuery.create(nil);
tmpqry := TQuery.create(nil):
try try
with qrysev do
begin
databasename := 'appdb';
sql.add('select * from xxx');
open;
end;
while not qrysev.eof do
with tmpqrysev do
begin
////根据qrysev的值做事情
end;
end;
except
////......
end;finally
qrysev.free;
tmpqry.free;
end;但是这没有涉及到事务,我应该怎么做????
在数据模板中有一TDatabase控件 APPDB,连数据库,建别名就是APPDB在某个函数中我一般是这么用:
procedure xxxx;
var qrysev,tmpqry:Tquery;
begin
qrysev := TQuery.create(nil);
tmpqry := TQuery.create(nil):
try try
with qrysev do
begin
databasename := 'appdb';
sql.add('select * from xxx');
open;
end;
while not qrysev.eof do
with tmpqrysev do
begin
////根据qrysev的值做事情
end;
end;
except
////......
end;finally
qrysev.free;
tmpqry.free;
end;但是这没有涉及到事务,我应该怎么做????
解决方案 »
- adoquery在post时到底用什么字段判断更新条件 好像用adoquery的field的ProviderFlags属性,请大家说明一下细节
- 【请教】关于复制和粘贴的问题
- 谁有 XLSReadWriteII 控件的注册版(含源代码)?
- 请问如何将表中查找出来的字段加到ComboBox中!在线等,谢谢!!
- 关于OleContainer的问题
- 如何通过Query获取SQL Server表中的GUID字段值?急!!!
- 串口问题?(在线等待.....)
- 大虾过来看看---我想找个单位做毕设
- 如何将Tobject类型以字符串的方式输出
- 请问各位两个小问题,关于Tedit和Tdatetimepicker的。
- 关于sendmessage的用法
- 数据库自动更新问题?
try
while not qrysev.eof do
with tmpqrysev do
begin
////根据qrysev的值做事情
end;
Database1.Commit;
except
Database1.Rollback;
end;
才能得到事務的控制
AConnectionDB1.CommitTrans;
AConnectionDB1.RollbackTrans;
確定樓主是在問怎麼執行事務的處理嗎?
我曾经在一次回滚的时候发生了错误,说什么 用户 没有用 StartTransaction 方法大家注意了吗,我的这个例子有两个TQuery控件,如果这两个不是属于同一个数据库
还可以这么用吗?
收费点每天收费,到晚上关机的时候将收费的数据备份到一张表 aaa.db
aaa.db表的结构是:《用户号,交费时间,交费金额,更新标志》
然后将aaa.db的数据更新到 mssql 服务器,更新的操作很复杂,就做了一个存储过程 p_edit
procedrue xxx
var QrySev,tmpQry1,tmpQry2:TQuery;
begin
QrySev := TQuery.create(nil);
tmpQry1 := TQuery.create(nil);
tmpQry2 := TQuery.create(nil);
try
RunSQL(QrySev,LocDBPath,'select * from aaa.db');
while not QrySev.eof do
try
Database1.StartTransaction; //开始事物
RunSQL(tmpQry1,LocDBPath,'......');//更新到本地表
RunSQL(tmpQry2,SevDBPath,'......');//更新到服务器
//问题就是上面的数据库不是同一个,一个是本地表,一个MSSQL服务器,Database1该是
//那一个呢 ,是本地的还是MSSQL服务器的
Database1.commit; //提交事物
except
Database1.Rollback; //回滚事务
end;
end;
finally
QrySev.free;
tmpQry1.free;
tmpQry2.free;
end;
end;procedure RunSQL(qry:tquery,dbstr,sql:string) 是一个过程,
就是让 qry 运行一个SQL语句,数据库是DBSTR;