T
take2001
Unregistered / Unconfirmed
GUEST, unregistred user!
bdelist:=tstringlist.Create();
bdelist.Add('server name=127.0.0.1');
bdelist.Add('database name=work'); //数据库名为'work'
bdelist.Add('user name=sa');
try
if session.IsAlias('ssps') then //判断ssps别名是否存在,如果存在则删除
session.DeleteAlias('ssps');
session.AddAlias('ssps','mssql',bdelist); //新建一个自己的ssps别名
database1.Connected:=false;
database1.AliasName:='ssps'; //别名
database1.DatabaseName:='work'; //数据库名为work
database1.LoginPrompt:=false;
database1.Connected:=true;
database1.KeepConnection:=false;
except
showmessage('连接数据库出错....');
bdelist.Free;
exit;
end;
database1.Connected:=false;
bdelist.Free;
以上是在form创建时建立的,
下面的单击某个按钮时触发的事件
database1.Connected:=true;
database1.StartTransaction;
try
query1.Close; //query1的databasename是直接添数据库名work
query1.SQL.Clear;
query1.SQL.Add('insert into rkd(凭证号)values('123456')');
query1.ExecSQL;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into rkd_tm(条码)values(qwert)');
query1.ExecSQL;
database1.Commit;
except
database1.Rollback;
application.MessageBox('存储异常','提示信息',mb_iconerror);
raise;
exit;
end;
database1.connected:=false;
这样写,我在存储'条码'时发生异常了,也捕捉到了,可是他照样把我的'凭证号'也存储进去了,怎么不会回滚呢? 哪里出错了?能帮忙看下吗?
bdelist.Add('server name=127.0.0.1');
bdelist.Add('database name=work'); //数据库名为'work'
bdelist.Add('user name=sa');
try
if session.IsAlias('ssps') then //判断ssps别名是否存在,如果存在则删除
session.DeleteAlias('ssps');
session.AddAlias('ssps','mssql',bdelist); //新建一个自己的ssps别名
database1.Connected:=false;
database1.AliasName:='ssps'; //别名
database1.DatabaseName:='work'; //数据库名为work
database1.LoginPrompt:=false;
database1.Connected:=true;
database1.KeepConnection:=false;
except
showmessage('连接数据库出错....');
bdelist.Free;
exit;
end;
database1.Connected:=false;
bdelist.Free;
以上是在form创建时建立的,
下面的单击某个按钮时触发的事件
database1.Connected:=true;
database1.StartTransaction;
try
query1.Close; //query1的databasename是直接添数据库名work
query1.SQL.Clear;
query1.SQL.Add('insert into rkd(凭证号)values('123456')');
query1.ExecSQL;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into rkd_tm(条码)values(qwert)');
query1.ExecSQL;
database1.Commit;
except
database1.Rollback;
application.MessageBox('存储异常','提示信息',mb_iconerror);
raise;
exit;
end;
database1.connected:=false;
这样写,我在存储'条码'时发生异常了,也捕捉到了,可是他照样把我的'凭证号'也存储进去了,怎么不会回滚呢? 哪里出错了?能帮忙看下吗?