在LabVIEW中动态配置ODBC数据源的方法.doc_第1页
在LabVIEW中动态配置ODBC数据源的方法.doc_第2页
在LabVIEW中动态配置ODBC数据源的方法.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在LabVIEW中动态配置ODBC数据源的方法1 前言ADO作为Microsoft开发数据库应用程序的最新接口,是一种提供访问各种数据类型的连接机制。由于它提供了比 DAO和RDO更加灵活的技术和更为广泛的应用,各种高级语言都用它来编制数据库应用程序。LabVIEW作为目前最流行的虚拟仪器开发工具之一,通过ActiveX控件技术来支持利用ADO技术来访问数据库,较之价格昂贵的SQL ToolKit for LabVIEW和编程复杂的DLL,ADO技术是LabVIEW访问数据库最理想的方式,它不仅编程简单,而且支持多种类型的数据库。ADO是通过DSN(数据源名)来访问数据库的。DSN是应用程序用以请求一个连到ODBC数据源的连接(CONNECTION)名字,它隐藏了诸如数据库文件名、所在目录、数据库驱动程序、用户ID、密码等细节。当建立一个连接时,不用去考虑数据库文件名、路径等等,只要给出它在ODBC中的DSN即可。因此,在使用ADO访问数据库前,先要配置ODBC数据源,即建立DSN与数据库文件名、所在目录、数据库驱动程序、用户ID、密码之间的对应关系。在一般情况下,可以用Windows系统下ODBC数据源管理器手动完成ODBC数据源的配置。可是,当改变数据源位置或者要将程序(包含数据源)安装到其他计算机上时,必须重新配置ODBC数据源,这样做不仅麻烦,而且给用户使用应用程序带来了困难。在一些高级语言中(如VB,C+)可以通过数据库引擎或在注册表中创建ODBC数据源键值的方法来实现ODBC数据源的自动配置。由于LabVIEW中没有提供数据库引擎或者类似的工具来完成ODBC的动态配置,因此第一种方法不能实现;第二种方法,虽然在LabVIEW中可以实现,但是无论是用VC编写相关的DLL供LabVIEW调用还是直接用LabVIEW提供的注册表操作函数创建键值,都会带来相当复杂的编程,而且还要求编程人员熟知注册表的相关知识,这些对编程人员来说是一个负担。下面我们介绍怎样通过导入注册表文件并修改部分键值的方法来实现ODBC数据源动态配置,这种方法较之前面两种不仅可行而且编程简单,对注册表的知识也没有很高的要求。2 导入注册表文件,动态配置ODBC数据源不难发现,手动配置ODBC数据源实际上是将数据源的相关信息写入注册表,而应用程序又是通过注册表中的相关信息来访问数据源的。因此,只要将与手动配置相似的注册表信息导入到注册表中,并由程序控制注册表中的相关内容,就可实现ODBC数据源的动态配置。在LabVIEW中实现注册表的导入和修改并不是一件很困难的事,因此用这种方法进行其动态配置ODBC数据源是极为方便的。具体步骤如下:第一步:准备要导入注册表的注册表文件(在这之前要完成手动配置ODBC 数据源)。(1)运行注册表编辑器,导出【HKEY_LOCAL_MACHINESOFTWARE ODBCODBC.INI ODBC Data Sources】关键字到tmp1.reg中。如果数据源为用户数据源,则导出【HKEY_CURRENT_USER SOFTWAREODBCODBC.INIODBC Data Sources】关键字。(2)导出数据源的注册表信息到tmp2.reg中。假设手动配置的ODBC数据源名为”demo”,则导出的是【HKEY_LOCAL_MACHINESOFTWAREODBCODBC.INIdemo】关键字。(3)合并上述两个注册表文件。用记事本打开tmp1.reg 和tmp2.reg,将两个文件中的注册表信息合并为一个注册表文件,另存为dsn.reg (保存在程序所在目录下)。本例合并后的dsn.reg内容为: Windows Registry Editor Version 5.00HKEY_LOCAL_MACHINESOFTWAREODBCODBC.INIODBC Data Sourcesdemo=Driver do Microsoft Access (*.mdb)HKEY_LOCAL_MACHINESOFTWAREODBCODBC.INIdemoDriver=C:WINDOWSsystem32odbcjt32.dllDBQ=F:demo.mdbDriverId=dword:00000019FIL=MS Access;SafeTransactions=dword:00000000UID=HKEY_LOCAL_MACHINESOFTWAREODBCODBC.INIdemoEnginesHKEY_LOCAL_MACHINESOFTWAREODBCODBC.INIdemoEnginesJetImplicitCommitSync=MaxBufferSize=dword:00000800PageTimeout=dword:00000005Threads=dword:00000003UserCommitSync=Yes(4)修改dsn.reg。对于特定的数据源来说,要动态配置的项只有“DBQ”和“Driver”关键字。“Driver”指明ODBC驱动程序的位置。ODBC驱动程序(本例为odbcjt32.dll)一般在系统目录下的system32目录中,所以将dsn.reg中的“Driver”键值改为”%systemroot%system32odbcjt32.dll”,即可实现驱动程序的动态配置。“DBQ” 项标识数据源的存放路径,在程序运行时,获得数据源存放数据路径后确定其键值,即可实现“DBQ”的动态配置。这里我们给“DBQ”键值为空值,待程序运行时在确定其值。修改后的“Driver”和“DBQ”为:Driver=%systemroot%system32odbcjt32.dllDBQ= 其他项不发生改变。至此,准备工作完毕。说明:本例中所使用数据库为Access数据库。对如不同的数据库驱动程序可能会有所不同,在手动配置时系统会根据数据源的类型自动选择适合的驱动程序。在确定“Driver”的键值时应注意驱动程序。第二步:导入注册表信息和修改“DBQ”关键字键值。在命令提示符下,执行“regedit /s dsn.reg”可以将dsn.reg“静态”导入到注册表中。在LabVIEW中执行相同的命令也能将dsn.reg导入到注册表中。【Function】【communication】【system exec.vi】可以执行各种命令,它的“command line”参数指定要执行的命令。【Function】【Advanced】【Windows Registry Access VIS】下提供各种各样的注册表操作函数,利用他们可以方便的创建,修改,查询,删除注册表项。具体用法可以参看 LabVIEW的帮助文档和实例。下面给出LabVIEW中导入注册表和修改“DBQ”关键字键值的程序框图如图1所示: 图1 动态配置VI(图中红线框部分获取数据源所在路径,也可以通过文件对话框来获得数据源路径)把这个VI 作为子VI在每次程序初始化时调用,即可实现ODBC 数据源的动态配置。为了证明这个方法的正确性,我们编写如下图2这个VI 来验证:图2 动态配置VI的应用实例框图中动态配置子VI即为图1编写的动态配置VI。若把包含程序和数据源的目录移动到磁盘中的其他目录或者另一台没有配置ODBC数据源的系统上,程序仍能够没有异常地运行。本例在WinXP+LabVIEW 7.1,Win

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论