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

2016-02-19 16:22 16 1 收藏

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

【 tulaoshi.com - 编程语言 】

动态连接数

  在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('softwareODBCODBCINST.INI'+sDriName,false) then

        begin

          sTmp:= ReadString('driver');

          if sTmp = '' then

          begin

            result:= false;

            exit;

          end;

        end

        else

        begin

          result:= false;

          exit;

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

        end;
        CloseKey;

        RootKey:= HKEY_CURRENT_USER;

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

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

        begin

          if not ValueExists(sDsnName) then

            WriteString(sDsnName,sDriName);
        end

        else

        begin

          result:= false;

          exit;

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

        end;

        CloseKey;

        if openkey('softwareODBCODBC.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;

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

        end;

      end;

    finally

      regTmp.CloseKey;

    end;

  end;
  

来源:http://www.tulaoshi.com/n/20160219/1611835.html

延伸阅读
标签: Java JAVA基础
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。 一、连接各种数据库方式速查表 ...
标签: SQLServer
  在第一部分,我们讨论了如何优化 ASP 代码。在这一部分,我们把重点放在数据访问上。 一般情况下,数据访问时间要比 ASP 代码解释,编译时间长,不要让数据检索成为影响 ASP 性能的瓶颈。 首先,讲一些老生常谈的话。比如:需要声明变量,要用 Response.Write SQL_string 来进行调试,要用 On Error Resume Next 来捕获错误。不要在 ...
我个人因为经常作一些数据库方面的程序,对于程序间如何与数据库进行接口的问题之烦是深有体会,因为VB在数据库链接的时候,一般是静态,即数据库存放的路径是固定的,如用VB的DATA,adodc,DataEnvironment等到作数据库链接时,如果存放数据库的路径被改变的话,就会找不到路经,真是一个特别烦的事。 笔者的解决方法是利用app.path来解决这...
以下是引用片段: 代码如下: ImportsSystem.Data ImportsSystem.Data.SqlClient PublicClassForm1 InheritsSystem.Windows.Forms.Form PrivateConnectionStringAsString="DataSource=.;InitialCatalog=;UserId=sa;Password=;" PrivatereaderAsSqlDataReader=Nothing PrivateconnAsSqlConnection=Nothing ...
标签: Web开发
ADO相关知识 在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command Connection:负责打开或连接数据 Recordset:负责存取数据表 Command:负责对数据库执行行动查询命令 连接各数据库的驱动程序 连接各数据库可以使用驱动程序(OLEDB),也可以使用数...

经验教程

825

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部