ODBC和udl文件在Server 2003 64 机器上问

本文解决在64位Server2003系统中ODBC仅显示SqlServer驱动及32位UDL文件无法连接数据源的问题。对于ODBC问题,需通过WINDOWSSysWOW64路径找到odbcad32.exe;对于UDL问题,则需通过特定命令调用32位OLEDB提供程序。

1、ODBC在Server 2003 64机器出现的问题:在Server 2003 64机器上打开控制面板->找到管理工具->找到ODBC打开->在驱动程序选项中只发现了SqlServer驱动别的都么有,点击系统DSN选项->点击add后发现里面没有别的只有SqlServer的,这就是我在这连天遇到的第一个问题?这个问题到底是什么原因导致呢?这个问题也花费了我不少时间,下面我来解释一下:

这个问题是由于我忽略了一个大前提,那就是操作系统是Server 2003 64位的,只要注意到这个大前提,那么这个问题就解决了一半。64位系统跟32位系统还是有区别的,odbc和下面的要讲的udl文件都是跟系统有关的。你在控制面板上找到的odbc是32位的所以里面没有其他的数据库驱动,其实在64位系统中有他自己的odbc,它存放在\WINDOWS\SysWOW64/文件夹下。那么你在这个文件加下找到odbcad32.exe,双击打开就可以看到所有数据库驱动了。


2、32位的udl文件在Server 2003 64机器出现的问题:我在32位机子上使用的udl文件测试连接时没有问题,发在64位机子上进行测试链接是却出现连接错误,提示不能连接数据源、找不到数据源,这个问题也话费了我好长时间。其实也是问题也是出在系统的问题上。64位系统处理32位系统上的udl文件时,有自己的策略。详细下面的英文说明:

“UDL Test” on a 64 bit machine

Let’s say you’ve started playing with UDL files on your "32 bit" machine and this tiny little UDL files helped you to identify connectivity issues or you’ve easily obtained the OLE DB connection strings for your applications. So far so good. But one day, you followed the same procedure on a 64 bit machine and couldn’t see the OLE DB Providers though you’re sure that it’s been installed. There must be something wrong then ?

The reason behind for this is simple. When you double clicked on a UDL file on a 64 bit machine, it’ll enumerate only the 64 bit OLE DB Providers and most probably you’ve installed a 32 bit OLE DB Provider.

So then, there should be a way of making UDL Test using the 32 bit OLE DB Providers on a 64 bit machine.

Actually when you’ve created a UDL file on a 64 bit machine and double clicked on it,

"C:\Program Files\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

command will be called through C:\windows\system32\rundll32.exe

Both binaries (oledb32.dll and rundll32.exe) used here are 64 bit and 64 bit oledb32.dll does not deal with 32 bit OLE DB Providers.

Since we already have 32 bit versions of those oledb32.dll and rundll32.exe in other folders on our 64 bit machines, we need to use them. Therefore, instead of double clicking on the UDL file, we’ll need to execute the command below from a command line or Start/Run :

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

Et voila :) There you have your 32 bit OLE DB Providers.
上面这篇英文文章是来自http://blogs.msdn.com/b/farukcelik/archive/2007/12/31/udl-test-on-a-64-bit-machine.aspx的,由于我自身英语翻译水平的原因没有翻译,解决方法是:C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl  这里的C:\test.udl是你的udl文件的路径。解决问题的思想跟上面的一样。

内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据技术支持。; 适合人群:具备一定自动控制理论基础Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值