无忧启动论坛

标题: [首发]PE访问ODBC数据源的解决办法 [打印本页]

作者: 2011renxj    时间: 2012-3-8 23:02
标题: [首发]PE访问ODBC数据源的解决办法
[根据大家要求提供了安装包和测试包下载,见10楼]

本人用PE做了一个完全内存版的操作系统(参见我以前的帖子),专用于非安全环境使用。该系统最近需要访问基于ODBC的本地*.MDB数据库,发现现有的PE无法实现这一功能。在论坛上提问后,发现很多人也有同样的问题,目前均未解决。于是我花了一周的时间解决它。现地终于搞定了,方法如下:
1.从原版操作系统找到所有的ODBC相关文件和MSJET相关文件,列表如下:
expsrv.dll         dao360.dll         mfc40.dll          mscpx32r.dLL
mscpxl32.dLL       msdart.dll         msexch40.dll       msexcl40.dll
msjet40.dll        msjetoledb40.dll   msjint40.dll       msjter40.dll
msjtes40.dll       msltus40.dll       mspbde40.dll       msrclr40.dll
msrd2x40.dll       msrd3x40.dll       msrecr40.dll       msrepl40.dll
mstext40.dll       msvcrt40.dll       mswdat10.dll       mswstr10.dll
msxbde40.dll       odbc16gt.dll       odbc32.dll         odbc32gt.dll
odbcad32.exe       odbcbcp.dll        odbcconf.dll       odbcconf.exe
odbcconf.log       odbcconf.rsp       odbccp32.cpl       odbccp32.dll
odbccr32.dll       odbccu32.dll       ODBCINT.DLL        odbcji32.dll
odbcjt32.dll       odbcp32r.dll       odbctrac.dll       oddbse32.dll
odexl32.dll        odfox32.dll        odpdx32.dll        odtext32.dll
simpdata.tlb       sqlsrv32.dll       sqlsrv32.rll       sqlunirl.dll
sqlwid.dll         sqlwoa.dll         vbajet32.dll       vfpodbc.dll
将这些文件COPY到SYSTEM32文件夹下。
2.运行regsvr32 将以下文件注册:
mfc40.dll
msexch40.dll
msexcl40.dll
msjet40.dll
msjetoledb40.dll
msjtes40.dll
msltus40.dll
mspbde40.dll
msrclr40.dll
msrd2x40.dll
msrd3x40.dll
mstext40.dll
msxbde40.dll
odbcconf.dll
dao360.dll
注册之后,ODBC数据源管理器就可以使用了。
3.使用ODBC数据源管理器配置好DSN,就可访问数据库了。
=================================
以上操作可以建立如下安装文件完成:
====Install.cmd=========
copy /Y *.* %WS%
For /F %%i In (dd.txt) DO REGSVR32 /s %%i
odbcconf /a {CONFIGDSN "Microsoft Access Driver (*.mdb)" "DSN=DB3 | DBQ=c:\db3.mdb"}
============END====================
以上命令行假设所有要拷贝的文件放在一个单独的文件夹中(例如ODBC_PE)。
Install.cmd文件就位于该文件夹中,并将所有要注册的文件名写入文本文件dd.txt中。
最后一行建立一个名为DB3的ODBC数据源,访问数据C:\db3.mdb。如果不一样按要求改好就行了。

以上操作在如水的XP PE中调试通过。其它PE版本没有试,只要不缺文件,应该都可以成功。

[ 本帖最后由 2011renxj 于 2012-3-10 16:13 编辑 ]
作者: 2011renxj    时间: 2012-3-8 23:10
本来还想将安装包和测试程序发上去,可是系统提示超出大小限制,只好算了。

[ 本帖最后由 2011renxj 于 2012-3-8 23:11 编辑 ]
作者: ihvtog    时间: 2012-3-9 08:38
支持技术分享,找个115网盘发上来
作者: tegl    时间: 2012-3-9 18:35
喜欢这种原创文章,感谢分享
作者: bigdinosaur    时间: 2012-3-9 20:53
谢谢楼主分享,PE下也能访问ODBC数据源了。
作者: zhczf    时间: 2012-3-9 23:23
楼主牛人啊,这么都搞出来了,支持分享经验啊
作者: yyjpcx    时间: 2012-3-10 08:50
技术很好    成功出于实践
作者: 2010anweinuo    时间: 2012-3-10 09:36
精技源自钻研,向技术先行者致敬!
作者: 意玺世修    时间: 2012-3-10 10:14
O(∩_∩)O谢谢分享啊
作者: 2011renxj    时间: 2012-3-10 16:11
标题: 根据大家要求,提供安装程序和测试包下载
ODBC安装包:
http://115.com/file/e7q2mb2y#ODBC-XPE.rar
下载解压后执行文件夹中的installODBC.cmd即可。
简陋的测试程序:
http://115.com/file/dpqsgksk#bde.rar
下载解压后执行文件夹中的install.cmd文件自动建立OBDC DSN,点击project1.exe用于测试

[ 本帖最后由 2011renxj 于 2012-3-10 16:28 编辑 ]
作者: happysong21    时间: 2015-1-30 16:09
真让我找到这个了,感谢楼主呀
作者: zhuoer    时间: 2015-2-11 21:37
技术贴,你是怎么跟踪到这些文件的?查看DLL调用吗?对编程不熟悉,只会做点自己用的小工具,都是用delphi 或au3之类完成的
作者: 2012yws@    时间: 2015-2-13 17:55
呵呵,楼主厉害啊,这个我也想了很久,也试过追DLL,但是一直不成功,因为对数据库不熟悉,所以苦逼了,今天看见楼主成功,非常高兴分享.如果楼主能够分享思路,那就太完美了.
另外楼主115的分享没有提取码了,也搜不见你的资源,来晚了,遗憾遗憾.是不是楼主取消了?




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3