动态连接数据库及动态建立ODBC,DSN(ZT)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 safef8 的 blog

在odbc数据源里配置数据库,通过这种方式,应用程序的编写变的简单。只需要在应用程序里面指定已经配置好的数据源就可以连接,访问数据库。但是,这种方式也有一定的局限性,需要手工的在odbc数据源里面配置。需要教会程序的使用者如何去配置,而且,如果一不小心更改了odbc数据源的配置(也许是无意的)。就会造成连接数据库失败。这时候,程序的使用人员也许会一筹莫展,束手无策。
在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);

本文关键:动态连接数据库及动态建立ODBC,DSN(ZT)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top