关于连接Access的问题,含工作组文件(有难度)

lake_cx 2008-04-21 11:24:50
为了采集某个财务软件的数据,需要连接该软件的帐套数据库,财务软件是VB写的
帐套数据库是Access的,并使用了工作组信息文件
Access数据库有密码,帐户也有用户名和密码
我使用了钩挂DllGetClassObject的方式,获取IClassFactory2接口,并修改vTable中的CreateInstanceLic获得了_Connection的接口,并使用该接口得到了连接字符串
其中有一个如下:(文件名已修改了,不暴露财务软件的类型了)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\..\**账套.mdb;Jet OLEDB:System database=D:\..\Temp.mdw;Persist Security Info=False;User ID=BeeSource;Password=`yaB\缎UlUdC罓~0WA\J]徉;Jet OLEDB:Database Password=謇譬^p\V
ZqEBqis
]沽)3

还有一个如下:
Provider=Microsoft.Jet.OLEDB.4.0;User ID=BeeSource;Data Source=E:\..\**账套.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database=D:\..\Temp.mdw;Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=謇譬^p\V
ZqEBqis
]沽)3;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

其中密码是直接用二进制的数据,我进行了转换直接写在代码里面如#$E5#$C0#$08#$C6的形式
可是去连接数据库时却告诉我无法打开Temp.mdw工作组文件

现在想问的是,出现这种情况有哪几种可能?
1、D:\..\Temp.mdw被加密或修改过(我Hook了CreateFile及OpenFile,没见到它修改该文件)
2、实际使用过程中,我将工作组文件删除(所有与财务软件相关的工作组文件),财务软件启动过程会报找不到文件,但帐套数据照样可以打开(这个让我觉得很奇怪)
3、Access无法打开该工作组文件
4、财务软将装上后Access无法使用,Access打开后窗体可以出来,然后马上死掉了,即使不打开任何数据库,直接运行
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsmserver 2008-04-25
  • 打赏
  • 举报
回复
D区没人了
hsmserver 2008-04-25
  • 打赏
  • 举报
回复
呵呵
lake_cx 2008-04-25
  • 打赏
  • 举报
回复
接分的人都没有。。。
谁第一分全给他。。。
lake_cx 2008-04-25
  • 打赏
  • 举报
回复
已经解决了,来个人接分吧。。。
okmjlegend 2021-07-14
  • 举报
回复
@lake_cx 怎么解决得
lake_cx 2008-04-25
  • 打赏
  • 举报
回复
顶一下
lake_cx 2008-04-21
  • 打赏
  • 举报
回复
怎么没人理。。。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧