我用ADO连接数据库。
_ConnectionPtr m_pDatabase;
并且已经成功的连接上我本地的SQL SERVER数据库了,现在我想对库进行操作,比如修改记录等,却总是错误:
VARIANT* vi;
m_pDatabase->Execute(_bstr_t(strSQL),vi,adCmdText|adExecuteNoRecords);但如果我用
_RecordsetPtr pRecordset;
并在.Open()中使用这个SQL语句就没问题。可如果SQL语句是DELETE....的话,会抛出异常。谁能给我一个用m_pDatabase->Execute(...)来执行SQL语句的例子?

解决方案 »

  1.   

    http://www.vckbase.com/code/downcode.asp?id=1539
    http://www.vckbase.com/code/listcode.asp?mclsid=11&sclsid=1105
      

  2.   

    http://www.codeproject.com/database/#ADO
      

  3.   

    好了,现在已经可以用m_pDatabase->Execute(...)来查询了,也可以返回pRecordset,但是还有几个问题:1、由于记录集不是用.Open()打开的,所以pRecordset->GetRecordCount()返回的是-1
    2、如果查询语句不是select,则调用pRecordset中的如GetRecordCount()、MoveNext()等函数仍旧返回错误
    3、如何利用Execute()函数中设置的_variant_t指针来判断返回的结果?