测试文件
//test.cpp
// test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include#include #include #include <windows.h> #include "Dump.h" #include "Ado.h" #include using namespace std; void PrintRecord(CAdo &ado,_RecordsetPtr &prs) { if(!prs->State) return; long lcountItem = 0; ado.GetFiledsCount(prs,&lcountItem); std::vector<_tstring> vTitle; ado.GetFileds(prs,vTitle); for (int i = 0;i < vTitle.size();++i) { wcout< adoEof) { for(int i = 0;i < lcountItem;++i) { VARIANT vt; vt.vt = VT_I4; vt.intVal = i; if(prs->GetCollect(_variant_t(long (i))).vt !=VT_NULL) { cout<<(_bstr_t)prs->GetCollect(vt)<<" "; } else { cout<<"NULL"< MoveNext(); } } void main() { ::CoInitialize(NULL); CAdo ado; bool bOpen = ado.Open(_T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=test;Data Source=CAIR")); if(bOpen) { long lcout = 0; bool bRet = ado.GetRecordSetCount(_T("select count(*) from Student"),lcout); VARIANT vt; vt.vt = VT_I4; vt.intVal = 0; //_RecordsetPtr prs = ado.Exec(_T("select * from Student"),&vt); ///> 执行存储过程 structStoreProcParam param[3]; param[0].Direction = adParamInput; param[0].DataType = adVarWChar; param[0].DataSize = 4; param[0].szParamName = _T("sname"); param[0].strVal = _T("jfm"); param[1].Direction = adParamInput; param[1].DataType = adInteger; param[1].DataSize = -1; param[1].strVal = 20; param[1].szParamName = _T("Sage"); param[2].Direction = adParamOutput; param[2].DataType = adInteger; param[2].DataSize = -1; param[2].strVal = 0; param[2].szParamName = _T("IsRight"); ///> 执行存储过程 cout<<"执行存储过程StuProc3 结果:"< 获取存储结果输入输出参数 VARIANT val; ado.GetStoreProcParamVal(_T("sname"),val); ado.GetStoreProcParamVal(_T("IsRight"),val); if(val.intVal != 0) { cout<<"SName:jfm Sage:20"<<"数据库存在该项!"< 数据库不存在该项!"< State) { prs->Close(); } prs.Release(); ///> 打开记录集 cout<<"执行打开记录集:select * from Student"< State) { pRecord->Close(); } pRecord.Release(); } ::CoUninitialize(); }
//>> ADO 执行结果: