Google
收费资源下载 | 发布源码资源

登录站点

用户名

密码

注册

查看日志|返回日志列表

动态连接数据库及动态建立odbc’dsn的delphi实现

标签动态  连接  数据库  建立  odbc  dsn  delphi  实现  2008-11-14 15:48
在form或Data Modules上放置Tdatabase控件,属性设置如下:
  object dbWork: TDatabase
    DatabaseName = 'work'
    LoginPrompt = False
    SessionName = 'Default'
    TransIsolation = tiDirtyRead
    Left = 32
    Top = 16
  End
  
1)   Paradox数据库的连接
  dbWork.Connected    := False
  dbWork.DriverName   :='STANDARD';
  dbWork.Params.Values['PATH']  := ‘d:/data’; //填写数据库路径
  dbWork.Connected    := True;
 2)         Informix数据库的连接(BDE连接)
  dbWork.Connected    := False
  dbWork.DriverName  := 'informix';
  dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
  dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
  dbWork.Params.Values['DATABASE NAME'] := ‘sysmaster;//数据库名称
  dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
  dbWork.Connected:=True;
3)        SQL Server数据库的连接(与informix一样)
  dbWork.Connected    := False
  dbWork.DriverName  := 'MSSQL';
  dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
  dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
   dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
   dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
  dbWork.Connected:=True;
4)        Postgrd SQL数据库的连接(ODBC连接)
  dbWork.Connected    := False
  dbWork.DriverName  := 'PostgreSQL';
 dbWork.Params.Values['ODBC DSN'] := 'PgSQL';/ /数据源名称
  dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
  dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
  dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
  dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
  dbWork.Connected:=True;
 PS:ODBC连接时,请保证odbc驱动安装正确;并且有设置odbc;
附自动设置odbc代码:
// sDriName 驱动程序名 (PostgreSQL)
// sDsnName 数据源名
function CreateDSN(sDriName,sDsnName:string): boolean;
var
  regTmp: TRegistry;
  sTmp: String;
begin
  Result:= True;
  regTmp:= TRegistry.Create;
  try
    with regTmp do
    begin
      RootKey:= HKEY_LOCAL_MACHINE;
      if openkey('software\ODBC\ODBCINST.INI\'+sDriName,false) then
      begin
        sTmp:= ReadString('driver');
        if sTmp = '' then
        begin
          result:= false;
          exit;
        end;
      end
      else
      begin
        result:= false;
        exit;
      end;
      CloseKey;
      RootKey:= HKEY_CURRENT_USER;
      if openkey('software\ODBC\ODBC.INI\ODBC Data Sources',True) then
      begin
        if not ValueExists(sDsnName) then
          WriteString(sDsnName,sDriName);
      end
      else
      begin
        result:= false;
        exit;
      end;
      CloseKey;
      if openkey('software\ODBC\ODBC.INI\'+sDsnName,True) then
      begin
        if not ValueExists('ServerName') then
          writeString('ServerName','');
        if not ValueExists('DataBase') then
          writeString('DataBase','');
        if not ValueExists('UserName') then
          writeString('UserName','');
        if not ValueExists('Password') then
          writeString('Password','');
        if not ValueExists('Description') then
          writeString('Description','DoWhat Create');
        if not ValueExists('driver') then
          writeString('driver',sTmp);
      end
      else
      begin
        result:= false;
        exit;
      end;
    end;
  finally
    regTmp.CloseKey;
  end;
end;

分享 2 次阅读 | 0 个评论

留下脚印

评论


相关资源下载