关于Tquery的databasename动态赋值(50分)

L

liuchy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写TRemoteDataModule的过程时发现,当动态的设置TQuery的databasename属性时,会出现"不能在打开的database进行该操作",当时TQuery已经和一个TDATABASE相关联.但在两层结构中,这样的操作就不出错,不知道为什么?
 
你联接已EXPORT了,你说还能这样吗?
 
问题好象不是这么简单.首先,Table和StoreProcedure就不出错,再有我的应急办法是首先将Query给delete然后在new一个,把原来的名字赋给新的Query,然后再设置databasename就ok.我想可能和export没有关系吧!
 
>>"不能在打开的database进行该操作"
恐怕错误信息应该是"不能在打开的dataSET进行该操作"吧!
当时你的query在active状态,因此不能修改databasename。
在修改之前应该先检查,因为在remoteDataModule中,
即使你不显式打开query,他仍然有可能被远程客户的请求打开。
 
to 温柔一刀
确实是dataBASE,如果是dataSet的话,只要将Query关掉了事,但database可不能关掉啊!

 
我相信你一定是调用了一些方法,例如:prepare,而没有unprepare。
因为如果你显式地调用prepare,close是不会自动unprepare的。
能够导致这种错误的方法,我暂时只找到了prepare,如果你没有调用,
那么请你检查代码,看看其他对query的方法的调用是否也应该有结束处理。
 
同意温柔一刀,Database控件或连再上面的控件肯定执行了某种操作
 
的确是Prepare的问题,谢谢!
 
接受答案了.
 
顶部