一般来说访问 mdb 内容都是用 microsoft jet oledb ,我有个上古的软件,源码肯定没有,有没有可能将微软 jet 引擎对 mdb 文件的访问转发,这样我就可以将数据库放在网络上,甚至可以将 mdb 的库用 mysql 或者 mssql 来代替。
1
ysc3839 2023-05-25 16:57:03 +08:00 via Android
oledb 好像是可以实现第三方 provider 的吧?好像只需要改一下连接字符串就能换掉,其他应该是一致的,用这个方案的话要实现的 hook 点就只有传连接字符串的那个函数。
还有方案就是把 oledb 所有函数都 hook 一遍,但这么做工作量太大,稳定性也难说。 如果只是想把文件放在远程的话,直接用 smb 等网络文件系统即可。 |
2
jstony OP @ysc3839 现在 mdb 文件已经通过 smb 共享放在 nas 上了,就是还想看看有没有更好的办法,你提到的是一个思路,如果可以自己编译一个第三方 provider ,然后注册到系统里,冒充微软的 jet 引擎可能是一个可行的方法。
|
4
yinmin 2023-05-25 18:59:07 +08:00 via iPhone
mdb 的 sql 是有自己的格式,不兼容其他 sql
|
5
ttvast 2023-05-26 04:23:21 +08:00 via iPad 2
access 可以将一个 sql server 的表链接成自己的表
|
8
yinmin 2023-05-26 10:02:54 +08:00
#7 mdb 使用的 sql 语法是很怪异的,例如:select 语句就与其它的数据库很不同。通过 OLEDB 转发后还需要一个转换层,将 ACCESS 的 SQL 语法转换成其它数据库的 SQL 语法。你可以找找有没有这种软件。
|