提示错误:IDispatch error:#3092
网上搜了 说的是字段类型不匹配,我看我字段类型也没哪不匹配 给解决下!谢谢!
代码如下:
#include <string>
using namespace std;
#include <tchar.h>
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
void main()
{
string codenum="00001";
::CoInitialize(NULL);
    _bstr_t strCnn("Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=userInfo;User Id=sa;Password=123;");
    _ConnectionPtr  pConnection = NULL;
try
{
pConnection.CreateInstance(__uuidof(Connection));
        pConnection->Open (strCnn, "", "", adConnectUnspecified);
string str="UPDATE bookStore SET 证书路劲='ct_cer"+codenum+"' WHERE 用户编号='"+codenum+"'";
        _bstr_t strUpdate=_T(str.c_str());
pConnection->Execute(strUpdate,NULL,adCmdText);
}
catch(_com_error e)
{
  printf(_T("Warning: Execute方法发生异常. 错误信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
}
}

解决方案 »

  1.   

    跟踪一下sql的值,执行一下看看有没有问题,另你使用的中文字段?而且路径写成了
    “路劲”?
      

  2.   

    感觉应该是SQL语句可能有问题,看错误这样改下就好了。
    e.ErrorMessage()
    //--?
    e.Description()
      

  3.   

    有中文出现的地方最好都转化一下:string str=_T("UPDATE bookStore SET 证书路劲='ct_cer")+codenum+_T("' WHERE 用户编号='")+codenum+"'";
      

  4.   

    问题已解决:
    #include <iostream>
    #include <string>
    using namespace std;
    #include <tchar.h>
    #import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
    no_namespace rename("EOF", "EndOfFile")
    void main()
    {
    string codenum="00001";
    ::CoInitialize(NULL);
        _bstr_t strCnn("Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=userInfo;User Id=sa;Password=123;");
    //_bstr_t bstrSQL(_T("select 用户编号,国家,省份,城市,姓名,证书路径 from bookStore"));
        _ConnectionPtr  pConnection = NULL;
        _RecordsetPtr   pRstTitles  = NULL;
    try
    {
    pConnection.CreateInstance(__uuidof(Connection));
            pConnection->Open (strCnn, "", "", adConnectUnspecified);
    string str="UPDATE bookStore SET 证书路径='ct_cer"+codenum+"' WHERE 用户编号='"+codenum+"'";
            _bstr_t strUpdate=_T(str.c_str());
    pConnection->Execute(strUpdate,NULL,adCmdText);
            pConnection->Close();
    }
    catch(_com_error e)
    {
      //printf(_T("Warning: Execute方法发生异常. 错误信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
      cout<<(string)(e.Description())<<endl;
    }
    }
    不会的也参考哈!呵呵