`
- 浏览:
1658804 次
-
如果用ado的话用_CommandPtr执行sql语句"callyourproc"或是"execyourproc(?,?,?)"参数用m_commandptr->Parameters->Append(m_commandptr->CreateParameter("tableitemid",adInteger,adParamInput,4,COleVariant((short)desttableitemid)));来建立.
---------------------------------------------------------------
#include"stdafx.h"
#import"C:/PROGRA~1/COMMON~1/System/ado/msado15.dll"rename("EOF","adoEOF")
structInitOle
{
InitOle(){::CoInitialize(NULL);}
~InitOle(){::CoUninitialize();}
}_init_InitOle_;
voidPrintProviderError(ADODB::_ConnectionPtrpConnection);
intmain(intargc,char*argv[])
{
printf("CreateaadParamReturnValueforCommandobjecttogetreturnvalueofstoredprocedure/n");
printf("Reference:MSDN---AppendandCreateParameterMethodsExample(VC++)/n");
ADODB::_ConnectionPtrConn1;
ADODB::_CommandPtrCmd1;
ADODB::_RecordsetPtrRs1;
ADODB::_ParameterPtrretParam=NULL;
ADODB::_ParameterPtrinParam=NULL;
ADODB::_ParameterPtroutParam=NULL;
_variant_tvtEmpty(DISP_E_PARAMNOTFOUND,VT_ERROR);
_variant_tvtEmpty2(DISP_E_PARAMNOTFOUND,VT_ERROR);
_bstr_tbstrConnect(L"driver={sqlserver};server=Cell;Database=zhg;UID=sa;PWD=;");
//thefollowingstoredprocedurereturn12345intvalue
_bstr_tbstrCreate(L"createprocsp_AdoTest(@OutParamintOUTPUT,@InParamint)"
L"as"
L"select@OutParam=@InParam+10"
L"select*fromTable1"
L"return12345");
_bstr_tbstrSP(L"sp_Adotest");
try
{
_bstr_tbstrEmpty;
Conn1.CreateInstance(__uuidof(ADODB::Connection));
Cmd1.CreateInstance(__uuidof(ADODB::Command));
Rs1.CreateInstance(__uuidof(ADODB::Recordset));
//Establishconnection.
Conn1->ConnectionString=bstrConnect;
Conn1->Open(bstrConnect,bstrEmpty,bstrEmpty,-1);
//Openrecordset.
Cmd1->ActiveConnection=Conn1;
Cmd1->CommandText=bstrSP;
Cmd1->CommandType=ADODB::adCmdStoredProc;
retParam=Cmd1->CreateParameter(_bstr_t("Return"),ADODB::adInteger,ADODB::adParamReturnValue,sizeof(int));
Cmd1->Parameters->Append(retParam);
outParam=Cmd1->CreateParameter(_bstr_t("OutParam"),ADODB::adInteger,ADODB::adParamOutput,sizeof(int));
Cmd1->Parameters->Append(outParam);
inParam=Cmd1->CreateParameter(_bstr_t("InParam"),ADODB::adInteger,ADODB::adParamInput,sizeof(int),_variant_t((long)10));
inParam->Value=_variant_t((long)10);
Cmd1->Parameters->Append(inParam);
Cmd1->Parameters->Refresh();
Cmd1->Parameters->Item[_variant_t(_bstr_t("@InParam"))]->Value=_variant_t((long)11);
Rs1->put_CursorLocation(ADODB::adUseClient);
Rs1->Open((_variant_t((IDispatch*)Cmd1)),vtEmpty,ADODB::adOpenStatic,
ADODB::adLockReadOnly,-1);
//Getreturnvalueofthestoredprocedure.adCmdUnknown
TCHARtcbuf[1024];
longretvalue=Cmd1->Parameters->Item[(short)0]->Value;
longp2=Cmd1->Parameters->Item[(short)1]->Value;
longp3=Cmd1->Parameters->Item[(short)2]->Value;
intrecordcount=0;
if(Rs1->State==ADODB::adStateClosed)
MessageBox(NULL,"norecordsetisreturnedfromthestoredprocedure","Information",MB_OK);
else
recordcount=Rs1->GetRecordCount();
wsprintf(tcbuf,
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
利用ado执行存储过程,完整实例可编译 成功执行完整代码
VC下的Oracle数据库读写操作案例,包括SQL-Plus的各种语句执行,以及存储过程的调用
VC下调用sql 2000存储过程的方法,采用的是ADO的技术。
VC 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示: UpdateData(true); BOOL result; ADOConn m_AdoConn; m_AdoConn.OnInitADOConn(); _bstr_t sql;...
使用VC写的小程序,用来测试linux下的oracle数据库的存储过程。
关于ADO调用存储过程的标准的做法:按照以下步骤进行: 1、生成并初始化一个_CommandPtr对象; 2、生成调用存储过程需要的参数,这些参数都是_ParameterPtr对象; 3、按照顺序将使用_CommandPtr的Append方法为...
用VC6.0程序编写的控件 用于SQL数据库的自己编写的存储过程 生成一个随机数 还不太熟练的朋友可以一起来学学
使用Visual C++ 6.0编写的扩展存储过程源代码!
VC查询Oracle数据(包括存储过程、分页查询)
VCADO调用存储过程[参考].pdf
VCADO调用存储过程[定义].pdf
这是一个介绍用VC6.0读取MATLAB中的MAT文件的详细过程和例子
用VC ADO实现SQL存储过程的调用.pdf
最简单的vc++调用存储过程实例(有参无参)归纳.pdf
使用ADO调用存储过程 ADO调用存储过程 显示到listvie VC6.0测试通过
完整的类,dll ,执行带参数的存储过程 返回结果集
作者项目开发的程序中要实现将程序中数据,包含图片要导出到...主要介绍了QT程序中导出图片到EXCEL指定单元格的实现过程及源码, VC或其他编程语言同样可参考方法说明通过 Excel.Application导出图片到指定单元格。
VC 通过水印将私密信息存储到图片中,包括了为图片添加水英加密/解密过程,左图为原始图,右图为嵌入了隐藏信息的图,操作对象BMP图像,刷屏后可显示加入隐藏信息后的图像,提取完毕,弹出保存对话框,用户进行保存...
在ADO中调用、执行SQL Server中的存储过程
VC访问数据库有两种方法:一种是使用CDatabase和CRecord对象;另一种是利用ADO技术。 这个程序实现了Postgre数据库的读写,以及存储过程的调用。