一个设置如何登陆的问题????
我是通过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的属性栏里设置,而是想在我的程序登陆时设置这些参数,也就是这些参数时动态改变的,请问我如何实现呢??以上的语句总是报错,该如何解决???

解决方案 »

  1.   

    procedure TForm1.btnTestDBClick(Sender: TObject);
    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;
      

  2.   

    你还是用ADO来连接吧..这样太麻烦啦..看楼上的
      

  3.   

    我还是想用BDE,还有什么解决的方法吗?
      

  4.   

    用BDE失败啊以后你就知道了的
      

  5.   

    这是俺用DELPHI6+ACCESS下ADO做的连接,中间用了一个INI文件
    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.