项目需求:
在服务器有个OA产品需要和财务部的金碟软件交互。但金碟是桌面应用程序,修改起来挺麻烦,想想OA是web 应用程序,嘿嘿。这个好办,所以就从服务器的PHP OA入手。只要把符合准确的数据存放到金碟的数据库中,金碟软件就能正常运行,并显示出数据。
但问题来了,主要有两个问题:
1.ACCESS如何局域网内不同电脑相连接?嗯,这个很少接触,暂且放一边。
2.金碟软件的数据库和一般的ACCESS数据库有点区别,他有专门的用户组,包括了Sample.ais和System.mda。此时要想直接把Sample.ais重命名为"Sample.mdb",再直接打开,是行不通的。只有在 工具 -》安全-》工作组管理员 选择“加入”选项选择"System.mda"这样,再双击打开“Sample.mdb"就没问题了。
好,数据库能打开了。那现在就是要解决程序的远程连接ACCESS数据库的问题。
平时在.net中连接ACCESS数据库就如下那么简单(首先声明,Sample.mdb的用户组名为:morningstar,密码:ypbwkfyjhyhgzj),则连接语句理所当然为:
这语句的确没有错误,但却无法打开该数据库,会提示“数据库被占用,或者无权限”类似这样的提示,具体的错误提示记不清了 :) .
奇怪了,用户名和密码是正确了呀 ,为何不行呢。
问题在这里呢,它不是还有一个文件么,叫这个“System.mda”这个就是对应操作该数据库的用户组文件,必须得把这个文件引入连接字符串才行吧,好,我们来试试,再改正为如下:
OK,再测试一下,好了,这下没问题了吧。嘿嘿。关键是加上这一句:System database=D:/System.mda
好了,本地的数据库测试成功,那远程的呢。
好,我们把同在局域网的其它台电脑(假设IP为:192.168.1.5)上的Sample.ais和System.mda所在文件夹共享出来。
则,我们的连接语句又可以改成这样:
大功告成,程序运行成功!!
这是在.net里的写法,当然,在其它程序里的写法其实也是一样,直接把Provider=Microsoft.Jet.OLEDB.4.0;Data Source=//192.168.1.5/Sample.ais;User ID=morningstar;Password=ypbwkfyjhyhgzj;Jet OLEDB:System database=//192.168.1.5/System.mda这一段照搬过去就OK了。
记录一下,希望能帮助更多朋友少走一些弯路,多一些时间去处理业务的操作。