以下是我为记录中的newid字段赋值并把修改后的记录存入数据库的代码。因为是初学者,对事物处理没什么认识,只是最近才查阅了相关的资料。对于程序中是否能真正实现事物处理还不确定。希望大家帮我看看,指出错误的地方,并且对于事物处理有什么心得能不能跟我分享一下。
if not self.ClientDataSet1.IsEmpty then
begin
if self.ClientDataSet1.FieldByName('newid').IsNull then
begin
if not self.ClientDataSet1.IsEmpty then
begin
Unit2.DataModule2.ADOConnection1.BeginTrans; //创建事务
try
begin
while not self.ClientDataSet1.eof do //循环语句
begin
self.ClientDataSet1.Edit;
self.ClientDataSet1.FieldByName('newid').AsString := Edit1.text;
Self.ClientDataSet1.Post;
self.ClientDataSet1.Next;
end;
//把数据集中的数据(包括Form4传递进来的数据和上面代码加入的newid数据)写入数据库
self.clientdataset1.ApplyUpdates(-1); Unit2.DataModule2.ADOConnection1.CommitTrans; //提交事务
end;
except
begin
showmessage('数据插入错误!');
Unit2.DataModule2.ADOConnection1.RollbackTrans; //回滚事务
end;
end;
if not self.ClientDataSet1.IsEmpty then
begin
if self.ClientDataSet1.FieldByName('newid').IsNull then
begin
if not self.ClientDataSet1.IsEmpty then
begin
Unit2.DataModule2.ADOConnection1.BeginTrans; //创建事务
try
begin
while not self.ClientDataSet1.eof do //循环语句
begin
self.ClientDataSet1.Edit;
self.ClientDataSet1.FieldByName('newid').AsString := Edit1.text;
Self.ClientDataSet1.Post;
self.ClientDataSet1.Next;
end;
//把数据集中的数据(包括Form4传递进来的数据和上面代码加入的newid数据)写入数据库
self.clientdataset1.ApplyUpdates(-1); Unit2.DataModule2.ADOConnection1.CommitTrans; //提交事务
end;
except
begin
showmessage('数据插入错误!');
Unit2.DataModule2.ADOConnection1.RollbackTrans; //回滚事务
end;
end;
前辈,对于处理事务的语句是不是要加在SQL语句上(我看其他人的例子都是这么做的),而我的程序中直接给字段赋值,行不行啊?