你的原因是:
cnn->Open(...);
rs->Open(_bstr_t(strSQL), (IDispatch*)cnn, adOpenDynamic, adLockOptimistic, asCmdText);
这两句在一块,当然rs和cnn都会被open啦。
你可以在整个程序初始化的时候打开cnn,
在程序结束时关闭cnn.即在程序运行期间保持cnn处于打开状态。
在运行期间使用rs时就不要再打开cnn啦!
cnn->Open(...);
rs->Open(_bstr_t(strSQL), (IDispatch*)cnn, adOpenDynamic, adLockOptimistic, asCmdText);
这两句在一块,当然rs和cnn都会被open啦。
你可以在整个程序初始化的时候打开cnn,
在程序结束时关闭cnn.即在程序运行期间保持cnn处于打开状态。
在运行期间使用rs时就不要再打开cnn啦!
cnn.CreateInstance(...); 创建一个之后Open就会增加一个连接。
帮帮忙啊!!!!我有一个好简单的问题,但是没有碰到人帮我啊,我已经没钱了,就要下线了,我实在等不及了,就在这里做做广告吧,帮我去看看我的题吧!谢天谢谢你们的关注了!我下线了啊!希望下次来的时候能够碰到救主!
http://www.csdn.net/expert/topic/576/576103.xml?temp=.2464258
connection 的类型是_variant_t.
你可以直接把一个_bstr_t作为_Recordset::Open的参数._Recordset::Open用该参数作为连接字符串建立连接后,会直接把connection变成相应的连接类型.结论:调用_Recordset::Open时,不用再调用connection的open.
rs->Open(_bstr_t(strSQL), _variant_t((IDispatch*)cnn,true), adOpenDynamic, adLockOptimistic, asCmdText);