VC调用SQL Server存储过程的通用方法介绍

作者:系统运维 来源:IT科技 浏览: 【】 发布时间:2025-11-05 14:10:08 评论数:
VC调用SQL Server存储过程的通用方法介绍
复制HRESULT hr = S_OK;   // Define ADO object pointers.   // Initialize pointers on define.   // These are in the ADODB:: namespace.   _RecordsetPtr pRstByRoyalty = NULL;   _RecordsetPtr pRstAuthors = NULL;    _CommandPtr pcmdByRoyalty = NULL;   _ParameterPtr pprmByRoyalty = NULL;   _ConnectionPtr pConnection = NULL;   _bstr_t strCnn("Provider=sqloledb;Data Source=srv;"   "Initial Catalog=Pubs;User Id=sa;Password=;");   _bstr_t strMessage,调用 strAuthorID;   int intRoyalty;   VARIANT vtRoyalty;   try   {   //Open a Connection.   TESTHR(pConnection.CreateInstance(__uuidof(Connection)));   hr = pConnection->Open(strCnn,"","",NULL);   pConnection->CursorLocation = adUseClient;   //Open Command Object with one Parameter   TESTHR(pcmdByRoyalty.CreateInstance(__uuidof(Command)));   pcmdByRoyalty->CommandText = "byroyalty";   pcmdByRoyalty->CommandType = adCmdStoredProc;   //Define Integer/variant.   vtRoyalty.vt = VT_I2;   vtRoyalty.iVal = intRoyalty;   pprmByRoyalty = pcmdByRoyalty->CreateParameter(   "percentage",adInteger,adParamInput,sizeof(int),vtRoyalty);   pcmdByRoyalty->Parameters->Append(pprmByRoyalty);   pprmByRoyalty->Value = vtRoyalty;   //Create Recordset by executing the command   pcmdByRoyalty->ActiveConnection = pConnection;   pRstByRoyalty = pcmdByRoyalty->Execute(   NULL,NULL,adCmdStoredProc);   //执行结果的处理,网站模板存储过程省略...   pRstByRoyalty->Close();   pRstAuthors->Close();   pConnection->Close();    }   catch(_com_error &e)   {   //意外处理...   }   }  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.高防服务器