欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

谈用Access数据库做服务器

程序员文章站 2022-06-09 09:30:52
...

在下前段时间用Delphi做了一个单机版的软件,数据库用access,开发过程比较顺利。怎知世事难预料,有天客户提出要在网络环境下运行此软件! 相信很多朋友都遇到此类问题。现在有3条路可以走,一条是将Access数据库升级成SQL Server数据库,还有一条是仍然用A

  在下前段时间用Delphi做了一个单机版的软件,数据库用access,开发过程比较顺利。怎知世事难预料,有天客户提出要在网络环境下运行此软件!

  相信很多朋友都遇到此类问题。现在有3条路可以走,一条是将Access数据库升级成SQL Server数据库,还有一条是仍然用Access,但使得它可以在网络上共享数据,第三条就是我们今天要讨论的,将Access改造成数据库服务器!

  我当时采用了最简单的办法,建议客户将此软件放在一个完全共享的文件夹里,哪台机器要用,就创建一个快捷方式。嘿嘿,此方法的最大好处就是不用我再动脑筋。

  后来我又想,能不能将Access数据库改造成类似于服务器的版本呢?

  这样做有如下好处:1、不用安装Windows Server版本及SQL Server版本,这些软件安装麻烦,价格昂贵,对机器的配置要求较高;2、客户端安装配置简便。

  我马上想到了MIDAS技术(现改名为DataSnap)。通过创建一个应用程序服务器,能不能将Access数据库改造成服务器版本呢?

  我马上动手试验改造。随便选一台机器做服务器(操作系统最好在WIN98或以上),用Socket连接方式,在上面放上Access数据库,运行一次用DataSnap技术改造的应用程序服务器软件,然后将客户端软件拷到另一台机器运行。

  这边有2点要注意:一是服务器上一定要先运行scktsrvr,这个程序Delphi有自带的,二是一定要将midas.dll文件拷到客户端的系统文件夹。

  结果却令我不解,客户端可以读出服务器上的数据,但却不能提交更改!

  原来的数据连接用的是Jet.OLEDB.4.0,记得我已前用BDE做测试时,连普通DBF文件都可以做服务器呢,问题会不会在这边?

  于是我在ODBC里配置了一个指向Access数据库的连接,然后用BDE的Database组件选择此数据库别名,重新测试。这一次,一切正常,成功了!

  剩下一个问题,就是BDE及ODBC的打包问题。这两个配置比较麻烦,可以用程序修改注册表来实现,但还有更简便的方法。现在很多安装工具都具备自动配置BDE及ODBC的功能,大家不妨选用这些工具打包。而且,由于采用多层数据库开发,只要在服务器上配置一遍就可以了,客户端只需一个额外的MIDAS.DLL文件。

  这是我自己试验的结果,不知谁还有更好的方法,望不吝赐教。