本人利用INI文件连接数据库,在form1的formcreate进行连接。然后在button1的click事件中进行判断,如果连接正确,显示一个数,如果不正确则进入form2进行INI文件修改。请问,在button1的click事件中应该怎么写?我写的连接如下:
procedure TForm1.FormCreate(Sender: TObject);
var
Fini:Tinifile;
sql:string;
filename:string;
constring:string;
begin
filename:=ExtractFilePath(Paramstr (0))+'serverip.ini';
Fini:=TiniFile.create(filename);
with Fini do
try
sql:=Fini.readstring('server', 'ip', '');//ip是192.168.1.11
finally
Fini.destroy;
end;
constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+'''';
adoconnection1.ConnectionString:=constring;
adoconnection1.LoginPrompt:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Fini:Tinifile;
sql:string;
filename:string;
constring:string;
begin
filename:=ExtractFilePath(Paramstr (0))+'serverip.ini';
Fini:=TiniFile.create(filename);
with Fini do
try
sql:=Fini.readstring('server', 'ip', '');//ip是192.168.1.11
finally
Fini.destroy;
end;
constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+'''';
adoconnection1.ConnectionString:=constring;
adoconnection1.LoginPrompt:=false;
end;
在button1中
adoconnection1.connected := false;
try
adoconnection1.connected := true;
//显示你的信息
except
messagebox(handle,'sysinfo','联接失败',mb_iconerror);
//弹出窗口
end;
P:=StrAlloc(1024);
IniFile := TInifile.Create(G_IniPath);
ServerName := IniFile.ReadString('DBConStr', 'ServerName', '');
DBName := IniFile.ReadString('DBConStr', 'DBName', 'LXGD');
UID := IniFile.ReadString('DBConStr', 'UID', 'sa');
PassWord := IniFile.ReadString('DBConStr', 'PassWord', '');
NctDecrypt(PChar(PassWord),P);
PassWord:=P;
IniFile.Free;
if (Trim(ServerName) = '') or (Trim(DBName) = '') or (Trim(UID) = '') or (PassWord = '') then
begin
MessageBox(Application.handle, PChar('数据库连接配置不正确或未配置,请先配置数据库连接!'), PChar('提示'), 0);
if not Assigned(Frm_DataBaseSet) then
Application.CreateForm(TFrm_DataBaseSet, Frm_DataBaseSet);
Frm_DataBaseSet.ShowModal;
end else
begin
ConStr := 'Provider=SQLOLEDB.1;Password=' + PassWord +
';Persist Security Info=True;User ID=' + UID +
';Initial Catalog=' + DBName +
';Data Source=' + ServerName;
ADOCon.ConnectionString := ConStr;
try
ADOCon.Connected := True;
except
on EOleException do
begin
MessageBox(Application.handle, PChar('数据库连接失败,请重新配置数据库连接!'), PChar('提示'), 0);
if not Assigned(Frm_DataBaseSet) then
Application.CreateForm(TFrm_DataBaseSet, Frm_DataBaseSet);
Frm_DataBaseSet.ShowModal;
end;
end;
end;
finally
StrDispose(P);
end;
Frm_DataBaseSet是数据库连接配置的页面,这个过程在数据模块(DM)的create里执行
写在Ini配置文件中
adoconnection1.connected:=true;
panel1.Caption := '联接数据库成功';
except
panel1.Caption := '联接数据库失败';
if not assigned(form2) then
form2 := TForm2.create(application);
form2.showmodal;
form2.free;
form2 := nil;
end;
adoconnection1.connected:=true;
ShowMessage('联接数据库成功');
except
ShowMessage('联接数据库失败');
//form2弹出
end;
adoconnection1.connected:=true;
except
form2:=Tform2.create(nil);
form2.showmodal;
end;
我是经过加密再保存的,我的加密函数里是用PChar.
不知道楼主到底有没有明白究竟是怎么做
try
ADOCon.Connected := True;
except
on EOleException do
begin
MessageBox(Application.handle, PChar('数据库连接失败,请重新配置数据库连接!'), PChar('提示'), 0);
if not Assigned(Frm_DataBaseSet) then
Application.CreateForm(TFrm_DataBaseSet, Frm_DataBaseSet);
Frm_DataBaseSet.ShowModal;
end;
end;
这里就是当连接发生错误的时候显示对话框,然后创建连接配置的页面.
你要注意的是当你在delphi环境下运行程序的时候,错误信息是仍然会提示的,单独运行的时候就不会提示错误信息了.