一个设置如何登陆的问题????
我是通过ODBC连接数据库的,需要在ODBC设置参数,比如,DataBase,server,username,password等参数,我在程序里使用了以下的语句:Database1.DatabaseName:='Flower_DB';数据库别名
Database1.DriverName:='PostgreSQL30';驱动
LoginParams.Values['DDATABASE NAME']:=DATABASE_NAME;数据库名
LoginParams.Values['USER NAME']:=DATABASE_USER;数据库用户
LoginParams.Values['ODBC DSN']:='PostgreSQL30';
LoginParams.Values['PASSWORD']:=''; 数据库用户密码
这些都是动态设置的,我不想把这些设置放ODBC中设置,也不想在Database1的属性栏里设置,而是想在我的程序登陆时设置这些参数,也就是这些参数时动态改变的,请问我如何实现呢??以上的语句总是报错,该如何解决???
我是通过ODBC连接数据库的,需要在ODBC设置参数,比如,DataBase,server,username,password等参数,我在程序里使用了以下的语句:Database1.DatabaseName:='Flower_DB';数据库别名
Database1.DriverName:='PostgreSQL30';驱动
LoginParams.Values['DDATABASE NAME']:=DATABASE_NAME;数据库名
LoginParams.Values['USER NAME']:=DATABASE_USER;数据库用户
LoginParams.Values['ODBC DSN']:='PostgreSQL30';
LoginParams.Values['PASSWORD']:=''; 数据库用户密码
这些都是动态设置的,我不想把这些设置放ODBC中设置,也不想在Database1的属性栏里设置,而是想在我的程序登陆时设置这些参数,也就是这些参数时动态改变的,请问我如何实现呢??以上的语句总是报错,该如何解决???
var
adoconnection1 : TADOConnection;
StrConn : String;
begin
if not CheckInput then Exit;
adoconnection1 := TADOConnection.Create(nil);
StrConn := 'Provider=SQLOLEDB.1;Password='+edtDBPassword.Text
+';Persist Security Info=True;'
+'User ID='+edtDBUser.Text+';Initial Catalog='
+edtDBName.Text+';Data Source='+cbDBServer.Text;
adoconnection1.ConnectionString := StrConn ;
adoconnection1.LoginPrompt := False;
adoconnection1.CommandTimeout := 5;
try
try
adoconnection1.Connected := True;
except
end;
finally
if adoconnection1.Connected then
Application.MessageBox('测试连接成功!','MicroSoft 数据库连接',MB_OK+MB_ICONINFORMATION)
else begin
Application.MessageBox('测试连接失败,用户名、密码或数据库名称错误!','MicroSoft 数据库连接',MB_OK+MB_ICONINFORMATION);
// edtDBUser.SetFocus;
end;
adoconnection1.Close;
adoconnection1.Free;
end;
end;
var
FlashForm: TFlashForm;
path:string;
MyInifile:TINIFILE;
DATA_SOURCE,DBQ,Initial_catalog:string;
begin
Application.Initialize;
FlashForm:=TFlashForm.Create(application);
FlashForm.Show;
FlashForm.Update; Application.CreateForm(TDataMo, DataMo);
path:=ExtractFilePath(Application.ExeName);
MyInifile:= TIniFile.Create(path+'app.ini');
DBQ:='Provider=MSDASQL.1;Password="";Persist Security Info=True;';
DATA_SOURCE:='DATA SOURCE='+MyInifile.ReadString('DATABASE','DATA_SOURCE','')+';';
Initial_catalog:='Initial Catalog='+path+'data\'+MyInifile.ReadString('DATABASE','DATA_SOURCE','')+';' ;
DataMo.ADOConnect.Connected;
DataMo.ADOConnect.Close ;
DataMo.ADOConnect.ConnectionString:=dbq+DATA_SOURCE+initial_catalog;
DataMo.ADOConnect.DefaultDatabase:=path+'data\'+MyInifile.ReadString('DATABASE','DATA_SOURCE','');
//showmessage(DataMo.ADOConnect.ConnectionString);
FlashForm.close;
FlashForm.Free;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.