请问各位大虾如何调用以有的储蓄过程的详细资料

解决方案 »

  1.   

    HRESULT hr;
    CVar vNull(VT_ERROR, DISP_E_PARAMNOTFOUND); //Open the database and the recordset
    try
    {
    if( m_pConnection == NULL )
    {
    char szDataSource[MAX_PATH];
    char szDataTable[MAX_PATH]; sprintf( szDataSource, "Provider=sqloledb;Data Source=%s ;", m_strDatabaseName );
    sprintf( szDataTable, "Initial Catalog=%s;User Id=%s;Password=%s;", m_strDataName, m_strUserName, m_strPassword ); _bstr_t strCnn;
    strCnn = szDataSource;
    strCnn += szDataTable; THROW_ERR( m_pConnection.CreateInstance( __uuidof(Connection) ) ); m_pConnection->PutConnectionTimeout( 30 );
    THROW_ERR( m_pConnection->Open( strCnn, _T(""), _T(""), adConnectUnspecified ) );
    m_pConnection->CursorLocation = adUseClient;

    ((MyApp*)AfxGetApp())->ReportError( "连接更新数据库成功" );
    } _CommandPtr pCommandPtr; THROW_ERR( pCommandPtr.CreateInstance( __uuidof( Command ) ) ); pCommandPtr->CommandText = "myprocedure";
    pCommandPtr->CommandType = adCmdStoredProc; VARIANT vUpdateXML, vType; CString strXML = pszUpdateXML;
    vUpdateXML.vt = VT_BSTR;// **
    vUpdateXML.bstrVal = strXML.AllocSysString();//SysAllocString( (OLECHAR *)pszUpdateXML ); _ParameterPtr  pParam; pParam = pCommandPtr->CreateParameter( L"data", adVarChar, adParamInput, 8000, vUpdateXML );
    pCommandPtr->Parameters->Append( pParam ); pParam->Value = vUpdateXML; vType.vt = VT_I4;
    vType.lVal = lType; pParam = pCommandPtr->CreateParameter( L"datatype", adInteger, adParamInput, sizeof(int), vType );
    pCommandPtr->Parameters->Append( pParam ); pParam->Value = vType; pCommandPtr->ActiveConnection = m_pConnection;
    pCommandPtr->Execute( NULL, NULL, adCmdStoredProc ); ::SysFreeString(vUpdateXML.bstrVal); m_pConnection->Close();
    m_pConnection = NULL; ((MyApp *)AfxGetApp())->ReportError( "更新数据库记录成功" );
    }
    catch ( HRESULT hr )
    {
    ((MyApp *)AfxGetApp())->ReportError( "更新数据库失败" );
    TRACE( "Update database error, Failed code : %X", hr ); return FALSE;
    }
    catch(_com_error &e )
    {
    ((MyApp *)AfxGetApp())->ReportError( (LPTSTR)e.ErrorMessage() ); return FALSE;
    } return TRUE;
      

  2.   

    用ADOStoredProc1就可簡單完成!!!
      

  3.   

    老大,用Delphi很容易搞定,非要发骚
      

  4.   

    用adoprodc
    adoproc.procedurename:='';
    adoproc.refresh;
    ADOproc.Parametrs.Parameterbyname('').value:='';
    adoproc.execproc;