各位大侠:
我在写一个小程序,我用:
procedure TDataModule2.DataModuleCreate(Sender: TObject);
var ini:TiniFile;
srvName:string;
constr:string;
tempstr:string;
begin
try
ini:=TiniFile.Create(ExtractFileDir(Application.ExeName)+'/server.ini'); srvName:=ini.ReadString('comserver','name','yoyo');
ini.Free;
DataModule2.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=data;Data Source='+srvname+'; Network library=dbmssocn'; DataModule2.ADOConnection1.Connected:=true;
except
ON E:exception DO
begin
showmessage('系统连接服务器失败、请检查网络配置!');
dl.Close;
end
end;
end;
程序片段,在打开程序时,我用上面的程序片段,联系数据库,请问:
如果我在程序中执行insert 语句 时,数据库突然关闭或中断了,我该如果判断数据库是否正常,然后执行语句
如果数据库不正常如何办?谢谢,本人是一名菜级人士,请赐相关语句
我在写一个小程序,我用:
procedure TDataModule2.DataModuleCreate(Sender: TObject);
var ini:TiniFile;
srvName:string;
constr:string;
tempstr:string;
begin
try
ini:=TiniFile.Create(ExtractFileDir(Application.ExeName)+'/server.ini'); srvName:=ini.ReadString('comserver','name','yoyo');
ini.Free;
DataModule2.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=data;Data Source='+srvname+'; Network library=dbmssocn'; DataModule2.ADOConnection1.Connected:=true;
except
ON E:exception DO
begin
showmessage('系统连接服务器失败、请检查网络配置!');
dl.Close;
end
end;
end;
程序片段,在打开程序时,我用上面的程序片段,联系数据库,请问:
如果我在程序中执行insert 语句 时,数据库突然关闭或中断了,我该如果判断数据库是否正常,然后执行语句
如果数据库不正常如何办?谢谢,本人是一名菜级人士,请赐相关语句
adoconnection中有方法begintrans,committrans和rollbacktrans,如果不理解的话可以看看数据库方面的书。
adoconnection.begintrans;
try
///....你的语句
adoconnecton.committrans;
except
adoconnecton.rollbacktrans;
end;
对于连接中断只能靠异常来处理了,
如:
conn.begintrans;
try
conn.committrans;
except
try
conn.rollbacktrans;
except
showmessage('连接异常!');
end;
end;