在TSQLConnection中,可以在IDE中设置DriverName,GetDriverFunc,LibraryName和VendorLib,还有ConnectionName,但是由于系统的需要,需要在程序中写代码动态的设置以上各属性值,我发现ConnectionName的设置同ADO的ConnectionString有点相同,关键是ConnectionName中对应有数据库名,用户名和密码这些关键的联接数据库的信息,应该怎样在程序中写代码来将数据库名,用户名和密码这些关键信息设置到组件TSQLConnection中,ConnectionName中对应的Key-Value是通过读取Delphi 7\Common Files\Borland Shared\DBExpress中的dbxconnections.ini来设置的,请高手给点建议。

解决方案 »

  1.   

    我是这样做的:
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Str:TStrings;
      con:TSQLConnection;
    begin
      try
        str:=TstringList.Create;
        str.Add('DriverName=Oracle');
        str.Add('DataBase=adv');
        str.add('User_Name=djw');
        str.add('Password=djw');
        str.add('RowsetSize=20');
        str.add('BlobSize=-1');
        str.add('ErrorResourceFile= ');
        str.add('LocaleCode=0000');
        str.add('Oracle TransIsolation=ReadCommited');
        str.Add('OS Authentication=False');
        str.Add('Multiple Transaction=False');
        str.Add('Trim Char=False');
        //ShowMessage(str.Text);
        con:=TSQLConnection.Create(self);    con.Params:=str;
        con.ConnectionName:='OracleConnection';
        con.DriverName:='Oracle';
        con.GetDriverFunc:='getSQLDriverORACLE';
        con.LibraryName:='dbexpora.dll';
        con.VendorLib:='oci.dll';
        con.LoginPrompt:=false;
        con.Connected:=true;
        ShowMessage('Success');    str.Free;
      except
        on E:Exception do
          ShowMessage(E.Message);
      end;
    end;
    提示'Missing DriverName property'错误。
      

  2.   

    str.add('DataBase=db');
        str.Add('USER_NAME=user');
        str.Add('NET PROTOCOL=TNS');
        str.Add('OPEN MODE=READ/WRITE');
        str.Add('SCHEMA CACHE SIZE=8');
        str.Add('LANGDRIVER= ');
        str.Add('SQLQRYMODE= ');
        str.Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
        str.Add('SCHEMA CACHE TIME=-1');
        str.Add('MAX ROWS=-1');
        str.Add('BATCH COUNT=200');
        str.Add('ENABLE SCHEMA CACHE=FALSE');
        str.Add('SCHEMA CACHE DIR=');
        str.Add('ENABLE BCD=FALSE');
        str.Add('ENABLE INTEGERS=FALSE');
        str.Add('LIST SYNONYMS=NONE');
        str.Add('ROWSET SIZE=20');
        str.Add('BLOBS TO CACHE=64');
        str.Add('BLOB SIZE=32');
        str.Add('OBJECT MODE=TRUE');
        str.Add('PASSWORD=pass');