如何配置在即时上的 ODBC 数据源

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

概要

您可以以编程方式配置 ODBC (开放式数据库连接(ODBC)) 数据源名称。这使您可以灵活地导出数据,而不强制用户显式指定的数据源的名称,使用 ODBC 管理器或其他程序。这可能,例如对于启用您要导出的.xls 文件,请使用 ODBC API (应用程序编程接口) 的程序。若要执行此操作使用 SQLConfigDataSource() 函数。

下面的示例创建新的 Excel 数据源名为"新的 Excel 数据源"使用 SQLConfigDataSource:
   SQLConfigDataSource(NULL,ODBC_ADD_DSN,
     (LPSTR) "Excel Files (*.xls)",
     (LPSTR) "DSN=New Excel Data Source\0"
     "Description=New Excel Data Source\0"
     "FileType=Excel\0"
     "DataDirectory=C:\\EXCELDIR\0"
     "MaxScanRows=20\0");
注意数据源是实际目录 (C:\EXCELDIR)。Excel 驱动程序必须作为它的数据源的目录和文件作为单独的表 (一个表中每个.xls 文件)。

有关创建表的其他信息,请参阅下列文章 Microsoft 知识库中相应:
110508创建表与基础数据库类
下面的信息讨论了需要传递给 SQLConfigDataSource() ODBC API 函数的参数。若要用于 SQLConfigDataSource() 函数中,您必须包括 ODBCINST.H 头文件,并使用 ODBCINST.LIB 导入库。

注: 对于 32 位的应用程序必须仍然包括 ODBCINST.H 的头文件但您现在必须与 ODBCCP32.lib 链接

注意: 这篇文章中包含的信息是在使用编程 MFC 百科全书随 Visual c + + 4.0 中重复的。文章可找到"SQLConfigDataSource"搜索并选择文章标题为的常见问题解答: 以编程方式配置 ODBC 数据源。

更多信息

注: 本文是最初为编写 16 位 ODBC 组件。16 位的 ODBC 组件使用 INI 文件存储在配置数据源 (ODBC.INI) 上的信息,并已安装的驱动程序 (ODBCINST.INI)。32 位 ODBC 组件不能再使用 INI 文件,但此类信息而是,写入注册表。系统数据源信息和已安装的驱动程序信息分别存储在 ODBC.INI 和 ODBCINST.INI,HKEY_LOCAL_MACHINE\SOFTWARE\ ODBC\。非系统数据源都存储在 HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI。在本文的其余部分,ODBC.INI 引用应解释为引用注册表的适当节,如果您正在使用 32 位 ODBC 组件。

可以使用 ODBC 管理程序或类似的实用程序来创建一个 ODBC 数据源名称。但是,有时最好是直接从您的应用程序创建一个数据源名称,以便可以获得访问,而不要求用户运行单独的实用程序。

(通常安装在 Windows 控制面板中) 的 ODBC 管理器通过将项放在 ODBC.INI 文件中创建一个新的数据源。此文件被查询通过 ODBC 驱动程序管理器以获得有关数据源所需的信息。了解哪些信息需要放在 $ 在 ODBC.INI 中,因为您需要为其提供调用 SQLConfigDataSource() 重要的。

虽然此信息可以直接写入 ODBC.INI 文件 [而不使用 SQLConfigDataSource()],这样做的任何应用程序依赖于当前技术驱动程序管理器用来维护它的数据。如果以后的修订版给 ODBC 驱动程序管理器实现则记录以不同方式维护有关数据源然后使用此技术的任何应用程序将被断开。通常,建议时提供一个使用 API 函数。

下面,您将找到的 SQLConfigDataSource() 函数的参数的说明。大部分信息取自与 Visual c + + 1.5 版一起提供的 ODBC API 程序员参考。 函数原型:
   BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest,
                            LPCSTR lpszDriver,
                            LPCSTR lpszAttributes);
hwndParent-这是将被用作任何的所有者对话框,它们创建由驱动程序管理器或特定的 ODBC 驱动程序,从用户有关新数据源获取的其他信息窗口。如果没有足够的信息将出现一个对话框,在 lpszAttributes 参数中提供。 此参数可能为 NULL,请参阅有关详细信息参考。

fRequest-要执行的操作。可能的值是:
                      ODBC_ADD_DSN: Add new user data
                        source.
                      ODBC_CONFIG_DSN: Modify an
                        existing data source.
                      ODBC_REMOVE_DSN: Remove an
                        existing data source.
的以下的值只是在 ODBC 2.53.0 中可用或更高版本的 32 位:
                      ODBC_ADD_SYS_DSN: Add a new
                        system data source.
                      ODBC_CONFIG_SYS_DSN: Modify
                        an existing system data
                        source.
                      ODBC_REMOVE_SYS_DSN: Remove
                        an existing system data
                        source.
lpszDriver-驱动程序说明。在文档中提到了,这是提供给用户,而不是物理的驱动程序 (DLL) 的名称。您可以确定驱动程序,如下所示使用 ODBC 管理器程序的说明:

  1. 运行 ODBC 管理器程序。
  2. 选择添加。这将为您提供的已安装的驱动程序的列表。
该列表包含驱动程序描述。它是您将使用 lpszDriver 参数作为此说明。请注意整个说明用 [例如 Excel 文件 (*.xls)] 如果它们存在说明中包括文件扩展名和括号。

(可选),您可以检查文件 ODBCINST.INI,包含的所有驱动程序项和 [ODBC 驱动程序] 部分中的说明的列表。

lpszAttributes-列表窗体中的属性的"keyname = 值"。 这些字符串分隔的两个连续的 null 结束符末尾的列表中的空终结器。 这些属性主要是将转到 ODBC.INI 文件中,以便将新的数据源的默认驱动程序特定项。一个重要的键,未会提及该函数的 ODBC API 参考中是"DSN"指定新的数据源的名称。该条目的其余部分是特定于新数据源的驱动程序。通常没有必要提供所有项,因为驱动程序就会提示用户 (如果 hwndParent 不为 NULL) 与新值对话框。您可能需要显式提供默认值以便不提示用户输入。

若要查找该 keynames 和它们的值的一种方法是检查注册表项已配置的数据源 (可能是一种已配置 ODBC 管理器程序):

重要此分区、 方法,或任务包含告诉您如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重问题。因此,请确保您仔细按照这些步骤。附加的保护注册表之前先备份您对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756如何备份和还原在 Windows 注册表

  1. 使用注册表编辑器转到 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\
  2. 查找与您的数据源名称相对应的配置单元。 您将找到关键字对。 警告,手动编辑注册表值可能导致系统不稳定和可能是一个不可恢复的故障。
您可能还需要检查您要使用的特定驱动程序文档。驱动程序可以通过运行 ODBC 管理器访问联机帮助中查找有用的信息: 单击添加,选择驱动程序的名称,然后单击确定。有关创建新的数据源信息弹出该特定驱动程序时, 选择帮助。这将打开帮助文件来该特定驱动程序,通常包含关于使用的驱动程序的重要信息。

参考

ODBC 程序员参考以及 SDK 指南 (在联机丛书中可用)。

属性

文章编号: 110507 - 最后修改: 2004年6月29日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Data Access Components 1.5
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
关键字:?
kbmt kbdatabase kbhowto KB110507 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 110507
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,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