如何设置 ODBC 数据源时分发应用程序

文章翻译 文章翻译
文章编号: 123008 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文讨论设置 ODBC 数据源的计算机上的以下四种方法:
  • ODBC 安装
  • RegisterDatabase
  • ODBC API
  • 密件副本的 INI 文件

更多信息

所需的文件

如果您使用 ODBC,必须与您的应用程序分发了以下文件。当使用设置向导创建通讯组磁盘时,请确保在文件列表中包含所需的文件。所有列出的文件应安装在 \WINDOWS\SYSTEM 目录中。

带有一个星号表示可选文件 (SQL Server 或 Oracle)。
File                  Description
----------------------------------------------------------------------
ODBC.DLL              The ODBC Driver Manager. This DLL is called by the
                      Microsoft Jet database engine when performing ODBC
                      operations. The Driver Manager handles loading the
                      correct ODBC driver and dispatching ODBC function
                      calls to the driver.

ODBCINST.DLL          The ODBC Driver Installation library. This DLL
                      contains Driver installation specific functions.
                      The ODBC Administrator (ODBCADM.EXE) calls functions
                      exported from this DLL when installing ODBC
                      drivers. You may also call functions in this DLL
                      to automate driver installation.

ODBCADM.EXE           The ODBC Administrator program. This program
                      allows a user to install ODBC drivers and
                      set up or modify Data Sources.

ODBCINST.HLP          The ODBC Administrator help file.

COMMDLG.DLL           The Common Dialog DLL. This DLL is used by the
                      ODBC Administrator program.

CTL3D.DLL             The 3D Control DLL. This DLL is used by the ODBC
                      Administrator program. If you are using ODBC.DLL
                      version 1.05 or greater, you need to distribute
                      CTL3DV2.DLL.

PDSODBC.DLL           Crystal Reports Physical Server DLL for ODBC. This
                      DLL is required only if your application uses Crystal
                      Reports to access an ODBC data source.

<driver>.DLL          The ODBC driver(s) that the application will use
                      to connect to specific Data Sources.

                      SQL Server:  SQLSRVR.DLL*
                      Oracle 6:    SQORA.DLL*

<netlib>.DLL          The network library file(s). This file is used
                      to access the Data Source when using a specific
                      network protocol.

                      Named Pipes: DBNMP3.DLL*
                      TCP/IP (Sybase SQL Server): WDBNOVTC.DLL*
                      IPX/SPX (Sybase SQL Server): WDBNOVSP.DLL*
                      SQL*Net Interface: ORA6WIN.DLL*

INSTCAT.SQL*          SQL Server Catalog Stored Procedures script.

DRVSSRVR.HLP*         SQL Server ODBC Driver help file.

ORASETUP.DLL*         Oracle ODBC Driver setup functions.

DRVORACL.HLP*         Oracle ODBC Driver help file.

ORACLE.TXT*           Oracle ODBC Setup "read me" file.

ODBC.INI              Initialization file containing information
                      about specific Data Sources. The DSN parameter
                      in the Connect property of the data control or
                      the OpenDatabase statement corresponds to an
                      entry in the ODBC.INI. This file must also be
                      created or modified on the client computer.

ODBCINST.INI          The Initialization file that contains
                      information about installed ODBC drivers. The
                      RegisterDatabase statement and ODBC Administrator
                      use the information contained in this file to
                      set up Data Sources. Entries in ODBCINST.INI
                      are created either by running an ODBC driver
                      setup or through the ODBC API. This file must
                      also be either created or modified on the client
                      computer.

要获取的 DSN 信息到 ODBC.INI 和 ODBCINST.INI 的四种方法

.INI 文件存储有关 ODBC 驱动程序和 ODBC 数据源的信息。如此一来他们是变量--用户可能已经安装了这些 \WINDOWS 目录中一次。如果开发人员能够盲目地复制到用户的计算机上的 ODBC.INI 和 ODBCINST.INI,新的文件可能会覆盖现有数据源。

以下是您可以使用进入用户的 ODBC.INI 和 ODBCINST.INI 文件 DSN 信息的四种方法。

ODBC 安装

要安装的 ODBC 驱动程序,并建立 ODBC 数据源 Visual Basic 的联机帮助文档建议您将 \VB\ODBC 目录中的全部内容复制到一个附加的通讯组的磁盘。

作为一名开发人员可以指定插入磁盘,并从软盘运行 SETUP.EXE。此外,您可以提示用户插入 ODBC 软盘,然后使用 Visual Basic Shell 命令外壳到 SETUP.EXE。

设置向导中复制并修改到 SETUP1A.MAK SETUP1.MAK,创建通讯组的磁盘的过程中。它能够 SETUP1A.MAK 构建到 SETUP1.EXE、 压缩它,和将其复制到通讯组磁盘。当分发磁盘上执行时 SETUP.EXE 时,SETUP.LST 中的文件复制到目标计算机。然后,SETUP1.EX_ 是未压缩并开始将文件从软盘复制到目标计算机执行。

很可能再修改 SETUP1A.MAK、 重建 SETUP1.EXE、 压缩,并将其复制到通讯组磁盘。若要确保压缩的文件大小将根据第一个通讯组磁盘,您必须填充代码之前先执行设置向导中的项目。然后您可以更改到注释的代码,并添加新的代码,以提示输入 ODBC 安装磁盘。生成的 EXE 大小然后仍能容纳的第一张分发软盘。

修改 SETUP1.FRM \VB\SETUPKIT\SETUP1 目录添加所需的代码填充该可执行文件中。在安装向导的执行过程中,此文件被复制到 SETUP1A.MAK。

: Microsoft 技术支持不支持的安装过程或任意位置安装文件的任何修改。设置向导和 $ 其基础创建一个"按原样"仅在文件提供支持。

下面是要遵循步骤:

  1. 启动 Visual Basic,然后从文件菜单中选择打开项目。打开 SETUP1.MAK \VB\SETUPKIT\SETUP 目录中。
  2. 从项目窗口中选择 SETUP1.FRM。请按 F7 来查看代码。
  3. 在 Form_Load 结尾处过程添加以下代码中该 ExitSub: 标签 RestoreProgMan 之后和之前 End 语句的一部分,:
          Dim tmpK As String
          Dim tmpS As String
          Dim I As Long
          tmpK = "dummy"
          For I = 1 To 1000
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
             tmpS = Mid$(tmpK, 1, 2)
          Next I
  4. 保存项目 (ALT,F,V)。
  5. 运行设置向导并创建通讯组磁盘。
一旦将磁盘了您需要转回 Visual Basic 编辑 SETUP1A.MAK,然后添加相应的代码,以提示输入 ODBC 安装和安装盘。请按照下列步骤操作:

  1. 启动 Visual Basic。
  2. 在 SETUP1A.MAK 中打开该项目 \VB\SETUPKIT\SETUP1 (ALT、 F、 O)。
  3. 选择 SETUP1A.FRM,按 f7 键查看代码。
  4. 在 Form_Load 过程中放置一个占位符以前插入的虚拟代码的每一行的前面的撇号:
          'Dim tmpK As String
          'Dim tmpS As String
          'Dim I As Long
          'tmpK = "dummy"
          'For I = 1 To 1000
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          '   tmpS = Mid$(tmpK, 1, 2)
          'Next I
  5. 下面的代码在 Form_Load 过程紧跟注释的代码中添加:
          x% = MsgBox("Do you want to install the ODBC Drivers?", 36,
             App.title)
          If x% = 6 Then
             If Not PromptForNextDisk(2, SourcePath$ + "ODBCADM.EX_") Then
                GoTo ErrorSetup
             End If
             x% = Shell(SourcePath$ &amp; "setup.exe")
          End If
  6. 更改磁盘号为 1 大于创建的通讯组磁盘总数。磁盘号是 PromptForNextDisk 过程第一个参数。在此的示例以提示输入下一张磁盘为 2。
  7. 保存 SETUP1A.MAK 项目并创建作为 SETUP1.EXE \VB\SETUPKIT\SETUP1 目录 (ALT、 F,K) 中的可执行文件。
  8. 外壳到一个 MS-DOS 命令提示符下,将目录更改到 \VB\SETUPKIT\SETUP1。执行在命令提示符下以下操作:
    \VB\SETUPKIT\KITFILES\COMPRESS-r SETUP1.EXE
  9. 将第一张的通讯组软盘放在适当的驱动器中,并将 SETUP1.EX_ 复制到软盘:
    复制 SETUP1.EX_ A:\SETUP1.EX_
现在,在运行您的通讯组磁盘时最后一步将提示您 ODBC 设置和安装磁盘。将从该磁盘执行 SETUP.EXE,用户可以再安装适当的 ODBC 驱动程序,并创建必要的数据源。您应包括有关此过程的说明。

有关修改 SETUP1.EXE 的详细信息请参阅第 25 Microsoft Visual Basic 程序员指南 》 中的"分发您应用"。

RegisterDatabase

Visual Basic 提供 RegisterDatabase 语句,以帮助您安装 ODBC 数据源,不驱动程序。RegisterDatabase 语句假定 ODBCINST.INI 和 ODBCINST.DLL 已经存在的计算机上。也就是在运行 RegisterDatabase 之前必须先安装驱动程序。如果是这样,开发人员可以使用 RegisterDatabase 添加或更新在 ODBC.INI 中的项。

此方法存在的问题是如果客户端计算机没有安装在计算机上的 ODBC,ODBCINST.INI 和 DLL 将不会存在。 此外,计算机的新 ODBC 驱动程序是否有不会 ODBCINST.INI 中, 为该条目以便 RegisterDatabase 将再也失败。

下面的说明、 语法、 注释和有关 RegisterDatabase 语句的示例来自于 Visual Basic 联机帮助:

说明:
使通过 OpenDatabase 函数连接使用可用的 ODBC 数据源名称的信息。
语法
RegisterDatabase dsn 驱动程序,无提示属性
说明: 的 RegisterDatabase 语句包含以下部分:

  • DSN: 该 OpenDatabase 中使用的是名称的字符串表达式正常工作,是指数据源有关的描述性信息块。例如对于如果数据源为 ODBC 远程数据库,它将该服务器的名称。
  • DRIVER: 是的 ODBC 驱动程序名称的字符串表达式。 这不是 ODBC 驱动程序 DLL 文件的名称。例如对于"SQL Server"或"oracle"是驱动程序的名称,但是"SQLSRVR.DLL"是 DLL 文件的名称。您必须具有 ODBC 和 $ 已经安装了合适的驱动程序。
  • 无提示: A 为数值表达式,它是 True,如果要显示 ODBC 驱动程序对话框提示输入特定于驱动程序的信息或假的如果您想要显示 ODBC 驱动程序对话框。如果无提示为 True,,则属性必须包含所有必需的特定于驱动程序的信息或将仍出现该对话框。
  • 属性: 字符串表达式,它是关键字添加到 ODBC.INI 文件的列表。该关键字是回车分隔字符串中。
示例
      Sub Command1_Click ()
         Dim att As String
         Dim mydb As Database

         att = "Description = SQL Server on server Texas" & Chr$(13)
         att = att & "OemToAnsi=No" & Chr$(13)   ' Build keywords string.
         att = att & "Server=TEXAS" & Chr$(13)
         att = att & "Network=DBNMP3" & Chr$(13)
         att = att & "Address=\\TEXAS\PIPE\SQL\QUERY" & Chr$(13)
         att = att & "Database=Pubs" & Chr$(13)
         att = att & "LastUser=Stimpy"

         ' Update ODBC.INI.
         RegisterDatabase "Texas", "SQL Server", True, att

         Set mydb = OpenDatabase("Texas", False, False, "ODBC;")
         mydb.Close

      End Sub
如果数据库已被注册,在 ODBC.INI 文件中,该条目更新。如果由于某种原因失败时 RegisterDatabase,ODBC.INI 文件进行任何更改,就会出错。

ODBC API

这是一种可能是最灵活和最有效方法,但是大多数开发人员不熟悉它并不具有 ODBC SDK API 的文档。开发人员应获得 Microsoft 软件开发工具包 (SDK),并从 Microsoft Press 得到"microsoft ODBC 2.0 程序员参考和 SDK 指南"。

复制 INI

如果开发人员是某些一个 ODBC.INI 和 ODBCINST.INI 安装计算机上不存在,它们只是可以将文件复制。但是,开发人员必须确保在驱动程序路径是正确的 ; 路径是完全限定.ini 文件中。例如对于 ODBC.INI 文件将指定 C:\WINDOWS\SYSTEM\SQLSRVR.DLL 为驱动程序对于 SQL Server,因此,如果用户的 Windows 安装程序正在 \WIN31,路径将不起作用。

属性

文章编号: 123008 - 最后修改: 2004年7月13日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Visual Basic 4.0 专业版
  • Microsoft Visual Basic 4.0 专业版
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 3.0 Professional Edition
关键字:?
kbmt kbdatabase kbhowto KB123008 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 123008
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com