C++通过ADO调用存储过程
2013-10-21 10:35
435 查看
很久以前就在网上找了一些关于用C++调用数据库存储过程的文章,并用到了自己的项目中。网上的文章都是要定义_CommandPtr和_ParameterPtr类型的智能指针对象,然后用pCmd->Excute(...)的方法来执行。这样做也没什么不好,就是麻烦了点。这两天突然来了灵感,想到一个更简单的方法:
#include <iostream> #include <Windows.h> using namespace std; #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF","rsEOF") int main() { _wsetlocale(NULL,L"chs"); CoInitialize(NULL); _ConnectionPtr pConn(__uuidof(Connection)); _RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString = L"provider=msdasql;driver={sql server};server=xxx.xxx.xxx.xxx;uid=xxx;pwd=xxxxx;database=xxxxx"; pConn->Open("","","",adConnectUnspecified); //这一句是执行存储过程的关键 //GetSchemas2便是存储过程的名称 //后面括号中的(2,\"zrs\")便是其参数列表 //注意Open方法的最后一个参数是adCmdStoredProc,而我们平常常用的是adCmdText pRst->Open(L"GetSchemas2(2,\"zrs\")",_variant_t((IDispatch*)pConn),adOpenKeyset,adLockOptimistic,adCmdStoredProc); if(1 == pRst->State) { long n = pRst->GetRecordCount(); wcout<<L"记录行数:"<<n<<endl; if(n>0) { pRst->MoveFirst(); while(!pRst->rsEOF) { int ID = pRst->GetCollect(L"ID"); wstring sname = (_bstr_t)pRst->GetCollect(L"SchemaName"); int DID = pRst->GetCollect(L"DesignerID"); wstring name = (_bstr_t)pRst->GetCollect(L"DesignerTrueName"); int PIR = pRst->GetCollect(L"Prior"); wcout<<ID<<L" "<<sname.c_str()<<L" "<<DID<<L" "<<name.c_str()<<L" "<<PIR<<endl; pRst->MoveNext(); } } pRst->Close(); } pConn->Close(); pRst.Release(); pConn.Release(); CoUninitialize(); system("pause"); return -1; }
相关文章推荐
- HOW TO:使用 ADO.NET 和 Visual C++ .NET 调用带参数的存储过程
- C++通过ADO读写Excel文件
- C#调用C++生成的类(通过CLR类库实现)
- Cocos2d-x中通过JNI进行C++调用Java代码
- 用java通过调用C++的DLL文件来修改系统分辨率(一)
- C++ 通过代码托管的方式调用c#的httpAgilityPack库
- JAVA程序通过JNI调用C/C++库
- c++虚表的使用 通过虚表调用虚函数的演示代码
- spring SimpleJdbcCall 调用存储过程 通过游标提取数据!
- Python通过调用mysql存储过程实现更新数据功能示例
- Cocos2d-x中通过JNI进行C++调用Java代码 JniHelper类的使用
- ADO.NET中调用存储过程
- 使用ADO调用存储过程
- Java通过JNI调用C++程序
- 怎样在PHP中通过ADO调用Asscess数据库和COM程序
- Java通过JNI调用C++程序
- 通过JNI实现Java和C++的相互调用(转)
- 通过JNI实现Java和C++的相互调用(转)
- 【ZT】ADO.NET调用存储过程
- python下面通过ctypes模块调用c++库的方法