c# 对已经用BDE连接打开的paradox数据库操作的问题

      项目需要,用c#编写的一个监视软件中去监视一个paradox数据中是否新增加了新的数据,如果新增加了数据,则根据我的要求做一些操作。而在监视软件对paradox进行监视期间,paradox数据库一直被一个用Delph编写的B软件采用BDE连接上了,并根据操作向数据库中插入数据。

       刚开始的时候,我本来想用.net平台的filesystemwatcher控件去监视paradox的属性等,但是发现不可以实现,因为只有当B软件对paradox释放了连接后,才会改变db文件的修改时间,这样无法达到我实时监控数据库的目的。而后想改用通过一个定时器去间隔读取数据库里面的数据条数,达到监测目的,出现无法对Paradox数据库进行操作的问题,后才思考才知道可能是因为paradox数据库本来就是给delph软件使用的,delph可以通过BDE连接方式对数据库进行连接,但是c#.net平台无法用BDE连接方式,只能用Odbc连接方式。所以在B软件用BDE方式连接上后,c#是无法再用ODBC方式连接上的,只能等b软件连接释放才可以。

      最后的解决方式是用delph编写一个小软件采用同样BDE方式去读取数据库中的数据条数(用同一种方式能同时操作数据库),如果新增加了数据,则更新一个Text文本,然后用C#的filesystemwatcher控件监控这个text文件,从而实现监控的目的。

      写下来,希望能给今后遇到同样问题的朋友一点帮助,少走弯路

 

你可能感兴趣的:(.net,数据库,C#,平台)