【SQL开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了SQL开源代码-LabVIEW中动态配置ODBC数据源的实现 - 培训资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
6科技资讯 SCIENCE & TECHNOLOGY INFORMATION2007 NO.25SCIENCE & TECHNOLOGY INFORMATION高 新 技 术更高的上行带宽。
3.6 系统运行维护EPON和以太网一样,在线路和施工要求相对双向HFC来说要简单一些,但是设备安装和调试对技术人员的要求比较高。
虽然EPON通过无源光器件的使用,与传统的以太网相比,提高了传输距离,减少了故障点,但由于是部署了两张网,因此在日后的系统维护工作量相比双向HFC要大一些。
3.7 光纤的问题传统的模拟电视广播业务是单向的,因此从分前端到光节点,只需要使用一根物理光纤。
而宽带业务在光缆部分需要两根物理光纤作为双向通道。
CMTS系统的下行信号是与模拟电视信号一并混入大网的,因此下行通通常LabVIEW中访问数据库的主要方法可以归纳为:(1)利用LabVIEW的ActiveX功能,调用Microsoft ADO对象,利用SQL语言实现数据库的访问。
(2)利用调用动态数据库DLL访问。
(3)利用NI公司的LabVIEW SQLToolkit工具包实现数访问。
(4)利用第三方工具包LabSQL访问。
其中第一种方法需要编程人员对ADO和SQL有较深的了解;第二种方法需要由其他语言编写DLL,需要从底层进行复杂的编程才能实现;第三种方法虽然容易操作,但该工具包是收费工具包,使用范围受限;而第四种方法由于LabSQL是对底层ADO及SQL操作的封装,使数据库操作简单易用,又因为本身是免费的,所以在相关领域中得到了广泛运用。
虽然LabSQL可以支持Windows操作系统中任何基于ODBC的数据库,但是在更换运行电脑之后,需要用户在程序运行之前,人为的在Windows的ODBC(数据源)中进行相关配置,否则程序将不能正常运行。
这就必然要求编程人员在完成主要编程后再编写说明文件,而用户在使用前必须进行相关配置,进而对程序的操作性和通用性产生影响。
本文提出和实现了在LabVIEW程序中通过向注册表中添加键值来实现ODBC数据源的动态配置。
1 ODBC注册表内容注册表是Windows操作系统保存重要信息的地方,主键HKEY_LOCAL_MACHINE\SOFTWARE\ODBC保存了ODBC配置信息,主键ODBCINST.INI保存着本机上已经安装的ODBC驱动程序的信息,主键ODBC.INI保存本机上所有用户都可以使用的ODBC数据源的配置信息。
主键HKEY_CURRENT_USER\Software\ODBC.INI保存当前用户所使用的ODBC数据源信息〔1〕。
以建立名称为temp,驱动程序为Microsoft Access Driver(*.mdb)的用户DSN为LabVIEW中动态配置ODBC数据源的实现聂波波 姜乐华(国防科技大学 湖南长沙 410072)摘 要:简要分析说明了ODBC数据源注册表内容及配置原理,提出并编程实现了在LabVIEW程序中通过向注册表中添加键值实现动态配置ODBC数据源的方法。
并编写了可以满足多种形式数据库ODBC配置需要的子VI。
关键词:LabVIEW ODBC 注册表中图分类号:TP3文献标识码:A文章编号:1672-3791(2007)09(a)-0006-02图1 注册表中的ODBC数据源配置图2 为动态配置Access数据库的道不需额外占用光纤资源,只需增加一根物理光纤作为回传通道。
EPON规划了在单一光纤上作全双工传输,并以点对多点的拓扑架构呈现。
EPON系统使用了分光器(splitter),利用不同的光波长来进行上行串行传输及下行串行传输。
EPON与传统的FTTH光接入网方式相比,确实大量的节约了部分光纤,但增加了小区内光节点到各楼道德的光纤使用,因此在光纤的问题上,如何有效的利用原有光纤对于节约成本尤为重要。
3.8 推广及适用范围EPON接入具有可管理和可扩展等特点,对局端资源占用少,模块化程度高,适合向全IP网过渡。
EPON+LAN的方式有较大的带宽优势,但是施工难度大,适用于具备五类线入户资源的地区,满足其增值业务发展路线中对接入网络的要求。
对于不具备条件的地区,需要重新布设线缆,其时间成本和隐性成本是难以估量的。
对于暂不具备双向网改造条件的地区,可以尝试EPON+EOC的方式,其改造工程量和难度较小,实施相对容易。
7 科技资讯 SCIENCE & TECHNOLOGY INFORMATION2007 NO.25SCIENCE & TECHNOLOGY INFORMATION高 新 技 术图3 测试程序3 LabVIEW中的实现应用程序中实现ODBC的动态配置就是要在程序运行过程中实现对注册表相应键值的添加。
反映在LabVIEW程序中就是要求在LabSQL调用数据库之前必须完成对注册表的更改。
LabVIEW中面板Function->Connec-tivity->Windows Registry Access VIs中提供了修改注册表的接口,可以实现对注册表项、子键和值的添加、修改和删除等操作。
利用该接口,可以在LabVIEW程序中完成ODBC键值的添加。
图2为动态配置Access数据库的LabVIEW程序。
图3是一个测试程序,首先通过图2程序建立DSN名为mydb,连接数据库为预先建立的Access数据库SampleDatabase的用户DSN,之后利用LabSQL 对mydb进行访问,并将数据库内容显示在多行多列表中。
可以看出程序实现了对数据库的正确访问,通过动态更改注册表实现动态配置ODBC数据源的方法是可行的。
用户对数据库类型的要求不同,而不同类型数据库需要添加的注册表键值不同,因此用同样方法编写如图4所示程序,用户只需键入DSN名、数据库路径并选择数据库类型
代码即可完成Excel、Access、dBase、Foxpro等数据库的ODBC数据源动态配置,将其封装成子VI,可以方便的应用在LabVIEW程序中。
4 结语测试程序运行结果表明,程序可以正确找到数据库的位置,并可以正确实现对数据库的访问。
即通过在LabVIEW中实现对注册表添加ODBC相应键值可以实现对ODBC数据源的动态配置。
程序编写人员可以利用本程序方便的将ODBC的配置过程融合在项目中,用户也可以免去了程序运行前繁琐的ODBC配置过程。
参考文献〔1〕 吕丹阳.Visual C++.NET数据库开发指南〔M〕.清华大学出版社.〔2〕 侯国屏,王坤.LabVIEW7.1编程与虚拟仪器设计〔M〕.清华大学出版社.例,可以发现在注册表HKEY_CURRENT_USE\Software\ODBC\ODBC.ini主键下添加了temp子键,同时在HKEY_CURRENT_USE\Software\ODBC\ODBC.ini\ODBCDataSources下添加了temp键值。
如图1所示。
ODBC数据源的配置过程可简述为向注册表中添加相应的键值,进而建立数据库与数据库驱动程序的连接。
由此可以设想通过在LabVIEW程序中实现向注册表添加相应键值进而实现ODBC数据源的动态配置。
2 注册表中关键键值仍然以temp为例,将注册表中HKEY_CURRENT_USE\Software\ODBC\ODBC.ini\temp值导出,通过记事本打开后结果为:Windows Registry Editor Version 5.00〔HKEY_CURRENT_USER\Softw are\ODBC\ODBC.INI\temp〕”Driver”=”C:\\WINDO WS\\system32\\odbcjt32.dll””DBQ”=”J:\\labview资料\\LabSQL\\Examples\\SampleDatabase.mdb””DriverId”=dword:00000019”FIL”=”MS Access;””SafeTransactions”=dword:00000000”UID”=””〔HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\temp\Engines〕〔HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\temp\Engines\Jet〕”ImplicitCommitSync”=”””MaxBufferSize”=dword:00000800”PageTimeout”=dword:00000005”Threads”=dword:00000003”UserCommitSync”=”Yes”可以发现HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\temp下存在一个Engines子键和Drive、DBQ、DriverId、FIL、SafeTransactios、UID6个值项,其中Engines子键又包含一个拥有ImplicitCommitSync、MaxBufferSize、PageTimeout、Threads、UserCommitSync等5个值项的Jet子项。
其中DBQ值是ODBC连接数据库的路径,也是唯一需要动态配置的值,其他各键值在数据库类型确定的情况下值是确定的。
因此添加键值的可以分为固定添加不变键值与动态添加DBQ值两块,对于固定添加的键值直接在程序中编程实现,对动态添加的DBQ值可以通过对话框由用户指定也可以由程序员固化。
需要指出的是对于不同类型的数据库,注册表关键键值是不同的,DBQ也不一定是必须的。
所以应根据数据库类型添加相应注册表键值。
上一篇:
MySQL源码剖析
下一篇:
软件工程毕业设计论文