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

爱笑鱼123

爱笑鱼123

2016-02-19 16:22

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的动态连接数据库及动态建立ODBC,DSN(ZT)懂设计的网友们快点来了解吧!
动态连接数

  在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;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

    try

      with regTmp do

      begin

        RootKey:= HKEY_LOCAL_MACHINE;

        if openkey('softwareODBCODBCINST.INI'+sDriName,false) then

        begin

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          sTmp:= ReadString('driver');

          if sTmp = '' then

          begin

            result:= false;

            exit;

          end;

        end

        else

        begin

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          result:= false;

          exit;

        end;
        CloseKey;

        RootKey:= HKEY_CURRENT_USER;

        if openkey('softwareODBCODBC.INIODBC Data Sources',True) then

        begin

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          if not ValueExists(sDsnName) then

            WriteString(sDsnName,sDriName);
        end

        else

        begin

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          result:= false;

          exit;

        end;

        CloseKey;

        if openkey('softwareODBCODBC.INI'+sDsnName,True) then

        begin

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

          result:= false;

          exit;

        end;

      end;

    finally

      regTmp.CloseKey;

    end;

  end;
  

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
动态连接数据库及动态建立ODBC,DSN(ZT)

Delphi数据库的动态建立

编程语言 网络编程
Delphi数据库的动态建立

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

NT IIS下用ODBC连接数据库

PHP
NT IIS下用ODBC连接数据库

plsql developer怎么连接数据库 plsql developer连接数据库教程

软件教程
plsql developer怎么连接数据库 plsql developer连接数据库教程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用JSP连接数据库

Web开发
用JSP连接数据库

jsp连接数据库oracle

Web开发
jsp连接数据库oracle

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在Access中创建表及如何指定字段类型

在Access中创建表及如何指定字段类型

ASP入门基础教程-Request对象概述

ASP入门基础教程-Request对象概述
下拉加载更多内容 ↓