///////以下是我的代码(初次接触三层请高手指教)
public
{ Public declarations }
Gs_server,Gs_database,Gs_user,Gs_password:string;//连接数据库参数(参数设置在public中)
/////////////////
procedure Tdbm.RemoteDataModuleCreate(Sender: TObject);
begin
readconfig;//读取配置文件
Connectdb;//连接数据库
end;
procedure Tdbm.ReadConfig; //读取配置文件
var
v_ini: TIniFile;
begin
if FileExists(ExtractFilePath(ParamStr(0)) + 'set.ini') then
begin
v_ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'set.ini');
with v_ini do
begin
Gs_server:=ReadString('DB', 'server','');
Gs_database:= ReadString('DB', 'database','');
Gs_user:= ReadString('DB', 'User','');
Gs_password:= ReadString('DB', 'PassWord','');
v_ini.free;
end;
end
else
showmessage('配置文件Set.ini不存在,系统不能正常运行');
end;
/////////以下两个过程是连接数据库的
procedure TDbM.Connectdb;
begin
InitDatabase(ADOCon1,Gs_database,Gs_user, Gs_password,Gs_server);
end;
procedure TDbM.InitDatabase(aADOConnect: TADOConnection; ATNSName,
AUserName, APassword, Amachine_name: string);
begin
try
with aADOConnect do
begin
connected:=false;
ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+AUserName+';Password='+APassword+';Initial Catalog='+ATNSName+';Data Source='+Amachine_name+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=LYP';
Connected := True;
end;
except
on E:EOleException do
begin
e.ErrorCode:=0;
showmessage('DB连接不成功 Machine_name:'+Amachine_name+' TNSNAME:'+ATNSName);
end;
end;
end;