有哪位大侠知道在Delphi中通过ODBC连接SYBASE数据库的方法?
1.我想在程序里通过动态的配置ODBC参数来连接SYBASE数据库,我使用的是TDATABASE组件。
2.还有我想不用手动去配置ODBC,而是通过程序来处理,请问有什么方法可以完成?
我以前是通过BDE来连接数据库的,但程序总是报找不到数据库别名,不知道是不是我设置的有问题呢还是我找不到方法。
我的程序源码是://取配置文件信息
MSGwuhanIni:=TIniFile.Create(GetCurrentDir+'\hongyun.ini');
SERVER_NAME:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'SERVER_NAME', '')),word(1));
DATABASE_NAME:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'DATABASE_NAME', '')),word(1));
DriverName:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'DriverName', '')),word(1));
ODBC_DSN:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'ODBC_DSN', '')),word(1));
HOST_NAME:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'HOST_NAME', '')),word(1));
DATABASE_USER:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'DATABASE_USER', '')),word(1));
PASSWORD:=EncryptIt.Decrypt(Trim(MSGwuhanIni.ReadString('DATABASE', 'PASSWORD', '')),word(1)); {SERVER_NAME:=Trim(MSGwuhanIni.ReadString('DATABASE', 'SERVER_NAME', ''));
DATABASE_NAME:=Trim(MSGwuhanIni.ReadString('DATABASE', 'DATABASE_NAME', ''));
HOST_NAME:=Trim(MSGwuhanIni.ReadString('DATABASE', 'HOST_NAME', ''));
DATABASE_USER:=Trim(MSGwuhanIni.ReadString('DATABASE', 'DATABASE_USER', ''));
PASSWORD:=Trim(MSGwuhanIni.ReadString('DATABASE', 'PASSWORD', '')); } //MyList := TStringList.Create;
try
  //****************下面这一段是通过bde来连接数据库的*********//
  {with MyList do
  begin
    Add('SERVER NAME='+SERVER_NAME);
    Add('USER NAME='+DATABASE_USER);
    Add('DATABASE NAME='+DATABASE_NAME);
    Add('DATABASE NAME='+HOST_NAME);
    Add('PASSWORD='+PASSWORD);
    Add('SQLPASSTHRU MODE=NOT SHARED');
  end;}
//****************上面这一段是通过bde来连接数据库的*********//
  with Database1 do
  begin
//****************下面这一段是通过bde来连接数据库的*********//
    //Session.Active:=false;
    //Session.Close;
    //Session.DeleteAlias('hongyun'); //删除数据库别名
    //Session.AddAlias('hongyun', 'SYBASE', MyList);//增加数据库别名
    //Session.SaveConfigFile;    {BDE配置文件存盘}    //LoginPrompt:=False;
    //Session.Open;
    //Session.Active:=true;
//****************上面这一段是通过bde来连接数据库的*********//
    Connected:=False;
    Close;
    DatabaseName:='hongyun';
    Database1.DriverName:=DriverName;
    Params.Clear;
    Params.Add('DATABASE NAME='+DATABASE_NAME);
    Params.Add('SERVER NAME='+SERVER_NAME);
    Params.Add('ODBC DSN='+ODBC_DSN);
    Params.Add('USER NAME='+DATABASE_USER);
    Params.Add('HOST NAME'+HOST_NAME);
    Params.Add('PASSWORD='+PASSWORD);
    LoginPrompt:=False;
    Open;
    Connected:=true;    
  end;
finally
  //MyList.Free;  
end;上面的代码是写在LonginForm的FormCreate的事件中,大家看看有什么问题???3.当程序运行没有问题时,我通过InstallShield做了一个安装程序,但程序运行就有问题,报找不到数据库别名的错误信息,是不是要在打包时要SYBASE的客户端应用页要包含?
请各位大侠指教,谢谢!