TSession的多线程编程

最近写了一个多线程进行数据库链接的程序的时候,发现一个错误:"File or directory does not exist. File: PDOXUSRS.NET"。追究其原由,发现是TSession的问题。大家都知道要用BDE进行多数据库编程,必须为各个TDatabase设置不同的TSession,其中重要的设置有SessionName、NetFileDir、PrivateDir,必须保持不能重复。NetFileDir设置一个目录用来存放BDE网络控制文件PDOXUSRS.NET.(Specifies the directory that contains the Borland Database Engine (BDE) network control file, PDOXUSRS.NET.)PrivateDir设置一个目录用来存储BDE的临时数据表(Specifies the directory in which to store temporary table processing files generated by the Borland Database Engine (BDE) for database components associated with a session.)。发生:"File or directory does not exist. File: PDOXUSRS.NET"错误,是因为不同程序注册了相同的SessionName,而NetFileDir、PrivateDir又是不同目录,结果PDOXUSRS.NET就没有产生在相应目录下,造成找不到PDOXUSRS.NET。

     由于Borland没有公布BDE.PAS代码,所以只能猜测BDE其实是根据SessionName在电脑里面注册了一个Tsession,所有程序都可以用。但这里注意,一定要设置对相应的NetFileDir、PrivateDir目录。其实NetFileDir、PrivateDir设置很重要,需要给创建、修改、删除权限,否则还会有其他问题。比如程序没有正常退出,该目录被占用,就会提示“Directory is busy.”

posted @ 2008-12-11 10:54  Enli  阅读(1225)  评论(0编辑  收藏  举报