设为首页 加入收藏

TOP

ADO操作总结(三)
2015-11-21 01:57:53 来源: 作者: 【 】 浏览:2
Tags:ADO 操作 总结
r)) return false; for (int i = 0;i < lfileds;++i) { VARIANT Vt; Vt.vt = VT_I4; Vt.intVal = i; _tstring strName = pRes->Fields->GetItem(&Vt)->Name; vTitle.push_back(strName); } return true; } catch(_com_error e) { ADOERR(e.ErrorMessage()); } return false; }

测试文件
//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 执行结果:


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlserver中如何批量修改一个表的.. 下一篇PostgreSQL数据库 OLTP高并发请求..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: