pComm->ActiveConnection = pDsConn;
pComm->CommandType = adCmdText;
pComm->CommandText ="INSERT INTO ServicePrice(sCode,sName,iLevel,sFinanceClass,sDefinition,sExcept,sUnit,fPrice0,fPrice1,fPrice02,sMemo,bEnd) VALUES (@sCode,@sName,@iLevel,@sFinanceClass,@sDefinition,@sExcept,@sUnit,@fPrice0,@fPrice1,@fPrice02,@sMemo,@bEnd)";
pParams = pComm->Parameters; 

pParams->Append(pComm->CreateParameter("@sCode"         , adVarChar , adParamInput , 20  ));
pParams->Append(pComm->CreateParameter("@sName"         , adVarChar , adParamInput , 50  ));
pParams->Append(pComm->CreateParameter("@iLevel"        , adInteger , adParamInput , 4   ));
pParams->Append(pComm->CreateParameter("@sFinanceClass" , adVarChar , adParamInput , 50  ));
pParams->Append(pComm->CreateParameter("@sDefinition"   , adVarChar , adParamInput , 1000));
pParams->Append(pComm->CreateParameter("@sExcept"       , adVarChar , adParamInput , 1000));
pParams->Append(pComm->CreateParameter("@sUnit"         , adVarChar , adParamInput , 10  ));
pParams->Append(pComm->CreateParameter("@fPrice0"       , adDouble  , adParamInput , 8   ));
pParams->Append(pComm->CreateParameter("@fPrice1"       , adDouble  , adParamInput , 8   ));
pParams->Append(pComm->CreateParameter("@fPrice2"       , adDouble  , adParamInput , 8   ));
pParams->Append(pComm->CreateParameter("@sMemo"         , adVarChar , adParamInput , 1000));
pParams->Append(pComm->CreateParameter("@sEnd"          , adBoolean , adParamInput , 1   ));pTempData->Close(); 
pParams->GetItem("@sCode")->Value           = sCode; 
pParams->GetItem("@sName")->Value           = sName;
pParams->GetItem("@iLevel")->Value          = nLevel;
        pParams->GetItem("@sFinanceClass")->Value   = sFinanceClass;
pParams->GetItem("@sDefinition")->Value     = sDefinition;
pParams->GetItem("@sExcept")->Value         = sExcept;
pParams->GetItem("@sUnit")->Value           = sUnit;
pParams->GetItem("@fPrice0")->Value         = fPrice0;
pParams->GetItem("@fPrice1")->Value         = fPrice1;
pParams->GetItem("@fPrice2")->Value         = fPrice2;
pParams->GetItem("@sMemo")->Value           = sMemo;
pParams->GetItem("@sEnd")->Value            = bEnd; pComm->Execute(&varAffect , NULL ,adCmdText);

解决方案 »

  1.   

    你用了try吗??捕获异常看看是什么错误。。
      

  2.   

    什麼 錯誤 ?up learn
      

  3.   

    hr返回DB_E_ERRORSINCOMMAND
    用SQL Server事件探察器发现只有INSERT INTO ServicePrice(sCode,sName,iLevel,sFinanceClass,sDefinition,sExcept,sUnit,fPrice0,fPrice1,fPrice02,sMemo,bEnd) VALUES (@sCode,@sName,@iLevel,@sFinanceClass,@sDefinition,@sExcept,@sUnit,@fPrice0,@fPrice1,@fPrice02,@sMemo,@bEnd)语句,并无相关的参数定义。(记得带参数的SQL语句应通过调用sp_executesql执行)
      

  4.   

    我也做一个大量操作数据库的程序
    First-chance exception in Database.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.报这个错误
      

  5.   

    pComm->Execute(&varAffect , NULL ,-1);
      

  6.   

    catch(_com_error &e)
        { 
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description());
    TRACE("Error\n");
    TRACE("Code = %08lx\n", e.Error());
    TRACE("Code meaning = %s\n", e.ErrorMessage());
    TRACE("Source = %s\n", (LPCSTR) bstrSource);
    TRACE("Description = %s\n", (LPCSTR) bstrDescription);
    return;
        }
    增加如上的catch,看看bstrDescription是什么内容
      

  7.   

    pComm->CommandText ="INSERT INTO ServicePrice(sCode,sName,iLevel,sFinanceClass,sDefinition,sExcept,sUnit,fPrice0,fPrice1,fPrice02,sMemo,bEnd) VALUES (@sCode,@sName,@iLevel,@sFinanceClass,@sDefinition,@sExcept,@sUnit,@fPrice0,@fPrice1,@fPrice02,@sMemo,@bEnd)";是不是這一句的問題?我沒見過這種用法和寫法?
      

  8.   

    "INSERT INTO ServicePrice(sCode,sName,iLevel,sFinanceClass,sDefinition,sExcept,sUnit,fPrice0,fPrice1,fPrice02,sMemo,bEnd) VALUES (@sCode,@sName,@iLevel,@sFinanceClass,@sDefinition,@sExcept,@sUnit,@fPrice0,@fPrice1,@fPrice02,@sMemo,@bEnd)";
    这句明显的是直接执行SQL语句,但是里面带了执行存储过程的@...格式语句。pParams = pComm->Parameters; 

    pParams->Append(pComm->CreateParameter("@sCode"         , adVarChar , adParamInput , 20  ));这样的明显是存储过程的参数设置。
      

  9.   

    SQL Server 可以执行带参数的SQL语句的,并且有可能提执行高速度(主要是批量执行),我主要考虑的是速度原因,所以才采用SQL带参数的调用方法。
      

  10.   

    SQL Server 可以执行带参数的SQL语句的,并且有可能提执行高速度(主要是批量执行),我主要考虑的是速度原因,所以才采用SQL带参数的调用方法。但是要ADO中我認為不可以?如果你可以的話你的寫法也可能不對?