如何通过c或c++调用存储过程?
答案:3 悬赏:40 手机版
解决时间 2021-02-07 10:46
- 提问者网友:呐年旧曙光
- 2021-02-06 12:04
如何通过c或c++调用存储过程?
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-06 12:40
不同的数据库提供了不同的API函数,使用这些API函数就可以完成调用存储过程的功能了。
比如SourcePro就是C和C++版本的数据库API封装库的第三方库函数集。里边提供的RWDB**些列函数,就支撑了对数据库所有功能的访问和使用。
比如SourcePro就是C和C++版本的数据库API封装库的第三方库函数集。里边提供的RWDB**些列函数,就支撑了对数据库所有功能的访问和使用。
全部回答
- 1楼网友:未来江山和你
- 2021-02-06 14:35
给个例子给你看下:
...
_CommandPtr m_cmdptr;
m_cmdptr.CreateInstance(__uuidof( Command ) );
_ParameterPtr inParam2=NULL;
_ParameterPtr inParam3=NULL;
_ParameterPtr inParam4=NULL;
_ParameterPtr outParam1=NULL;
_ParameterPtr outParam2=NULL;
_ParameterPtr outParam3=NULL;
inParam2.CreateInstance(__uuidof(Parameter));
inParam3.CreateInstance(__uuidof(Parameter));
inParam4.CreateInstance(__uuidof(Parameter));
outParam1.CreateInstance(__uuidof(Parameter));
outParam2.CreateInstance(__uuidof(Parameter));
outParam3.CreateInstance(__uuidof(Parameter));
m_cmdptr->ActiveConnection=m_pConnection;
m_cmdptr->CommandType=adCmdStoredProc;
m_cmdptr->CommandText=_bstr_t("proc_XXX");//存储过程的名称
//输入参数
inParam2=m_cmdptr->CreateParameter(_bstr_t("@P1"),adVarChar,adParamInput,32,_bstr_t(P1));
m_cmdptr->Parameters->Append(inParam2);
inParam3=m_cmdptr->CreateParameter(_bstr_t("@P2"),adVarChar,adParamInput,20,_bstr_t(P2));
m_cmdptr->Parameters->Append(inParam3);
//输出参数
outParam1=m_cmdptr->CreateParameter("@P4",adInteger,adParamOutput,sizeof(int));
m_cmdptr->Parameters->Append(outParam1);
outParam2=m_cmdptr->CreateParameter("@P5",adInteger,adParamOutput,sizeof(int));
m_cmdptr->Parameters->Append(outParam2);
outParam3=m_cmdptr->CreateParameter(_bstr_t("@P6"),adVarChar,adParamOutput,20,_bstr_t(P6));
m_cmdptr->Parameters->Append(outParam3);
//执行
m_cmdptr->Execute(NULL,NULL,adCmdStoredProc);
//取返回值
long p1=m_cmdptr->Parameters->GetItem("@P4")->Value;
long p2=m_cmdptr->Parameters->GetItem("@P5")->Value;
VARIANT vtP6 =m_cmdptr->Parameters->GetItem("@P6")->Value;
if (vtP6.vt != VT_NULL)
strcpy(tp,(_bstr_t)vtP6);
m_cmdptr.Detach;
- 2楼网友:毛毛
- 2021-02-06 13:51
在现今的软件开发领域中,java以其跨平台的优势得到大量的应用,其代码可以一次编译多处执行。但这种特性给java带来了一定的局限性,幸好java提供了完备的c/c++语言接口,这样可以利用c语言的强大功能实现java难以实现的功能,在一定程序上消除java的局限性和低效率。(1)创建dll文件使用某一种c/c++开发工具创建dll文件,实现某一功能,供java调用,例如本文在此使用visual studio 2005创建一个名为testdll的动态库文件。(2)使用jnijni是java na***tive interface的缩写,中文为java本地调用。它允许java代码和其他语言写的代码进行交互。1)java类:在java程序中,首先需要在类中声明所调用的库名称,如下:static{system.loadlibrary(“testdll”);//加载动态库,testdll为dll//文件名称}还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯