VC调用存储过程的通用方法

VC调用存储过程的通用方法

ID:37903530

大小:36.00 KB

页数:5页

时间:2019-06-02

VC调用存储过程的通用方法_第1页
VC调用存储过程的通用方法_第2页
VC调用存储过程的通用方法_第3页
VC调用存储过程的通用方法_第4页
VC调用存储过程的通用方法_第5页
资源描述:

《VC调用存储过程的通用方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC调用存储过程的通用方法(SQLServer篇)开发者在线Builder.com.cn更新时间:2008-03-28作者:临风来源:CSDN本文关键词:sqlserver调用vc数据库这里讨论的是ADO调用存储过程,按MSDN的例子,一般都是下面的调用方法(节选自MSDN):HRESULThr=S_OK;   //DefineADOobjectpointers.   //Initializepointersondefine.   //TheseareintheADODB:: namespace.   _RecordsetPtrpRstByRoyalty=NULL;   _RecordsetP

2、trpRstAuthors=NULL;    _CommandPtr  pcmdByRoyalty=NULL;   _ParameterPtrpprmByRoyalty=NULL;   _ConnectionPtrpConnection=NULL;   _bstr_tstrCnn("Provider=sqloledb;DataSource=srv;"       "InitialCatalog=Pubs;UserId=sa;Password=;");   _bstr_tstrMessage,strAuthorID;   intintRoyalty;   VARIANTvtRoyalty;   

3、try   {       //OpenaConnection.       TESTHR(pConnection.CreateInstance(__uuidof(Connection)));       hr=pConnection->Open(strCnn,"","",NULL);       pConnection->CursorLocation=adUseClient;       //OpenCommandObjectwithoneParameter       TESTHR(pcmdByRoyalty.CreateInstance(__uuidof(Command)));     

4、  pcmdByRoyalty->CommandText="byroyalty";       pcmdByRoyalty->CommandType=adCmdStoredProc;       //DefineInteger/variant.       vtRoyalty.vt=VT_I2;       vtRoyalty.iVal=intRoyalty;       pprmByRoyalty=pcmdByRoyalty->CreateParameter(           "percentage",adInteger,adParamInput,sizeof(int),vtRoyalt

5、y);       pcmdByRoyalty->Parameters->Append(pprmByRoyalty);       pprmByRoyalty->Value =vtRoyalty;       //CreateRecordsetbyexecutingthecommand       pcmdByRoyalty->ActiveConnection=pConnection;       pRstByRoyalty=pcmdByRoyalty->Execute(           NULL,NULL,adCmdStoredProc);      //执行结果的处理,省略...   

6、    pRstByRoyalty->Close();       pRstAuthors->Close();       pConnection->Close();   }   catch(_com_error&e)   {       //意外处理...   }}必须指定执行SQL语句的CommandType是adCmdStoredProc,存储过程有参数就必须CreateParameter生成参数,这样调用存储过程就成了很麻烦的一件事情,必须针对不同的存储过程生成不同的参数。一个两个还可以接受,如果项目的业务逻辑比较复杂,需要依赖大量的存储过程,并且项目的需求或功能可能要经常变动或扩展,

7、那就成了一个噩梦了。有没有通用的方法呢?当然有,只需要通用的查询就可以实现。_ConnectionPtrpConnection=NULL;m_Conn.CreateInstance(__uuidof(Connection));m_Conn->ConnectionString="Provider=sqloledb;DataSource=srv;"InitialCatalog=Pubs;UserId=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。