首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

ADOConnection1的奇怪有关问题

2012-03-11 
ADOConnection1的奇怪问题别人的一个程序在达到一定条件的时候会把系统环境变量指向另一个个地方,然后发出

ADOConnection1的奇怪问题
别人的一个程序在达到一定条件的时候会把系统环境变量指向另一个个地方,然后发出一个事件.我在程序运行时开一个线程监听这个事件,收到事件后执行如下操作:
            CoInitialize(NULL);
            DataModule1-> ADOConnection1-> Close();
            conn= "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= ";
            conn=conn+DbName;
            conn=conn+ ";Persist   Security   Info=False;Jet   OLEDB:Database   Password=123 ";
            DataModule1-> ADOConnection1-> ConnectionString=conn;
            DataModule1-> ADOConnection1-> Open();
            CoUninitialize();
  DbName是在新的环境变量指向的分区里数据库文件路径.
  release版的程序在装有CB的机器上,没有什么问题.
但是在没有CB的机器上,程序在发出事件之前运行,监听到这个事件执行上面操作时,就会出错.而在事件发出之后运行,同样是执行上面的操作,就不会有问题.这个会是什么原因?

表达能力不好,抱歉


[解决办法]
就你上面的程序来说,与装没装CB设关系,可能与机器的速度或其它环境有关.
由于你是要用事件监听,可能的情况是对方程序虽然已发事件,但还没有真正将变量写入,你马上取可能得不到,所以最好加上在收到事件后先加一个Sleep(500)或更多
另外,用try ... catch,将出错的信息显示出来,以判断程序的出错内容
[解决办法]
ding

热点排行