2,497
社区成员
发帖
与我相关
我的任务
分享
//数据模块单元代码:
procedure TDataModule1.DataModuleCreate(Sender:TObject);
begin
with mainform.ConDB do //condb为主窗体mainform里面的一个panel控件
begin
Visible:=true;//显示连接数据库提示信息
left:=(mainform.width-6)div 2-width div 2;
end;
mainform.Refresh;
OpenLink;
end;
procedure TDataModule1.OpenLink;
var
ini:Tinifile;
s,DSource:string;
begin
Timer.Enabled:=false;//timer时钟控件
mainform.ConDB.Caption:='正在连接数据库,请稍等……';
mainform.ConDB.Show; //显示提示信息
//读取ini文件里面的数据源信息,具体情况可以自己修改
ini:=Tinifile.Create(extractfilepath(paramstr(0))+'DataConnect.ini');
try
DSource:=ini.ReadString('DataBase','Server','qzdb');
finally
ini.Free;
end;
s:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=qzled;Data Source=.';
s:=s+';Data Source='+DSource;
try
ADOConnection1.Close;
ADOConnection1.ConnectionString:=s;
ADOConnection1.Open;
mainform.ConDB.Visible:=false;//隐藏连接数据图提示
//数据库连接成功后,这里可以进行你要想做的操作
{......}
except
Tag:=Tag+1;
mainform.ConDB.Caption:='[ '+inttostr(Tag)+'次 ]连接数据库失败!10秒后重试';
Timer.Interval:=10000;
Timer.Enabled:=true;
end;
end;
//MainForm中,如果数据库连接失败,调用ReConDB函数重新连接数据库
//注意使用异常处理中来判断数据库连接是否正常
//try
//{...数据库操作(查询、读、写、删...)...}
//except
// ReConDB;
//end;
procedure TMainform.ReConDB;
begin
DataModule1.ADOConnection1.Connected:=false;
DataModule1.Timer.Tag:=0;
DataModule1.Timer.Interval:=3000;
DataModule1.Timer.Enabled:=true;
end;