clientdataset1.active:=true;
clientdataset1.active:=false;
clientdataset1.active:=true;
即使只使用一个clientdataset,在它关闭之后,再打开时,依然会出错。
但如果客户端写成
dcomconnection1.appserver.connect('db2');
clientdataset1.active:=true;
dcomconnection1.appserver.connect('db2');
clientdataset2.active:=true;
可以执行成功。但这样似乎很不好看,com+为什么会在连接完数据库后又把自己释放呢?
原来,tmtsdatamodule有一个autocomplete属性,默认值是true,所以在连接完数据库之后,它还是会把自己释放。
把autocomlete设成false后,还是出错,在com+的onactivate事件中跟踪发现,当它被激活时,autocomplete属性被自动设为ture了,所以在它第一次连接数据库后,依然会把自己释放。