永发信息网

如何通过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**些列函数,就支撑了对数据库所有功能的访问和使用。
全部回答
  • 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。并且只需要声明,而不需要具体实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯