var
MyIni : TiniFile;
sPath, S: string;
begin
sPath := ExtractFilePath(Application.ExeName);
MyIni:=TiniFile.Create(sPath + 'CYGL.ini');
ADOConnet.ConnectionString:=MyIni.readString('LoginConnection','ConnectionString','');
MyIni.Free;
try
ADOConnet.Connected:= True;
except
if not Assigned(SetDataForm) Then
begin
SetDataForm:=TSetDataForm.Create(Self);
SetDataForm.ShowModal;
end;
end;
end;
MyIni : TiniFile;
sPath, S: string;
begin
sPath := ExtractFilePath(Application.ExeName);
MyIni:=TiniFile.Create(sPath + 'CYGL.ini');
ADOConnet.ConnectionString:=MyIni.readString('LoginConnection','ConnectionString','');
MyIni.Free;
try
ADOConnet.Connected:= True;
except
if not Assigned(SetDataForm) Then
begin
SetDataForm:=TSetDataForm.Create(Self);
SetDataForm.ShowModal;
end;
end;
end;
如果没有CYGL文件ADOConnet.ConnectionString应该为空。
showMessage('file not exists');
MyIni:=TiniFile.Create(sPath + 'CYGL.ini');
IniFileName,AdoCnStr:String;
DBServer,DBNM,UID,PWD,ErrStr:String;
ErrNo:Longint;
begin
Adoconn.Close;
IniFileName:=ExtractFilePath(ComServer.ServerFileName)+'CYGL.ini';
If FileExists(IniFileName) then
Begin
AdocnIni:=Tinifile.Create(IniFileName);
try
DBServer:=AdocnIni.ReadString('Connect','DBServerNm','默认的SQL服务器名');
DBNM:=AdocnIni.ReadString('Connect','DBNM','默认的数表库名');
UID:=AdocnIni.ReadString('Connect','UID','默认的用户名');
PWD:=AdocnIni.ReadString('Connect','PWD','默认的密码');
AdocnStr:='Provider=SQLOLEDB.1;Persist Security Info=True; User ID='+Trim(UID)+'; PassWord='+PWD+';Initial Catalog='+Trim(DBNM)+';Data Source='+Trim(DBServer);
finally
AdocnIni.free;
end;
try
Adoconn.close;
Adoconn.ConnectionString:=Adocnstr;
Adoconn.Connected:=True;
//Screen.Cursor:=crHourGlass;
except
On E:EOleException do
begin
//错误号 -2147467259 SQL Server 服务器名,数据名错误
// -2147217843 登录错误(用户名错,口令错) 数据名错误
ErrStr:=E.Message;
ErrNo:=E.ErrorCode;
raise E.Create(ErrStr,ErrNo,ErrStr,'',0);
//ShowMessage(IntToStr(ErrNo));
end;
//Screen.Cursor:=crdefault;
end;
//Screen.Cursor:=;
End
else
Begin
Application.MessageBox('相关的INI文件不存在,请检查INI文件及其配置!','系统错误!',MB_OK);
Application.Terminate;
End;
Appini:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'APP.INI');
-------------------------
procedure TLogin.ReadINIFile(const AIniFile: TIniFile; var ADataSource, AUserID, APassWord: string);
begin
ADataSource := AIniFile.ReadString('ConnectionParams', 'Data Source', '');
AUserID := AIniFile.ReadString('ConnectionParams', 'User ID', '');
APassWord := AIniFile.ReadString('ConnectionParams', 'Password', '');
end;
如果INI文件不存在,那ADataSouce,AUserID,APassword肯定都是‘’字符
这时候你付给ADO字符串,然后激活Connect肯定会返回错误,连接失败
你可以Show除你自己的数据库配置窗口
if not TestConnect(DataSource, UserID, PassWord) then
begin
if not TfrmDBConfig.Execute(DataSource, UserID, PassWord) then
Application.Terminate
else
WriteINIFile(FIniFile, DataSource, UserID, PassWord);
end;
配置成功后,把信息写入INI AIniFile.WriteString('ConnectionParams', 'Data Source', ADataSource);
AIniFile.WriteString('ConnectionParams', 'User ID', AUserID);
AIniFile.WriteString('ConnectionParams', 'Password', APassWord);