鄙人使用如上的TSQLConnection连接oracle,有时在不同表空间切换连接时,可以成功;
有时就失败,其它机器上也是如此。
sqlconnection1.close;
sqlconnection1.params.values['database']=servername;
sqlconnection1.params.values['user_name']=username;
sqlconnection1.params.values['password']=password;
sqlconnection1.open;sqlquery1.close;
sqlquery1.sql.clear;
sqlquery1.sql.add('select ...略');
sqlquery1.open;sqlconnection1.close;
sqlconnection1.params.values['database']=servername2;
sqlconnection1.params.values['user_name']=username2;
sqlconnection1.params.values['password']=password2;
sqlconnection1.open;sqlquery1.close;
sqlquery1.sql.clear;
sqlquery1.sql.add('select ...略');
sqlquery1.open;就会报数据库属性不存在,这样的错误!哪位大侠知道其原因?
有时就失败,其它机器上也是如此。
sqlconnection1.close;
sqlconnection1.params.values['database']=servername;
sqlconnection1.params.values['user_name']=username;
sqlconnection1.params.values['password']=password;
sqlconnection1.open;sqlquery1.close;
sqlquery1.sql.clear;
sqlquery1.sql.add('select ...略');
sqlquery1.open;sqlconnection1.close;
sqlconnection1.params.values['database']=servername2;
sqlconnection1.params.values['user_name']=username2;
sqlconnection1.params.values['password']=password2;
sqlconnection1.open;sqlquery1.close;
sqlquery1.sql.clear;
sqlquery1.sql.add('select ...略');
sqlquery1.open;就会报数据库属性不存在,这样的错误!哪位大侠知道其原因?
建议在sqlquery1.close之前加个判断,if sqlconnection1.conncted=true 时,再进行查询操作。
sleep(10);
end;
做一个这样的等待不知是否可取?
sqlconnection1.close; 之前,
难道不用
sqlquery1.close;
一下吗?
我只是猜测而已
对于这种在同一个操作里面可能连接不同数据库的情况,还不如再动态创建一个连接、用完就释放掉算了