当前位置:首页 > 芯闻号 > 充电吧
[导读](1)初始化COM库,引入ADO库定义文件(2)用Connection对象连接数据库(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得

(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库

(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。

(4)使用完毕后关闭连接释放对象。

#include#include#include#import "C:msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

using namespace std;

int main(void)
{
	CoInitialize(NULL);
	_ConnectionPtr pCon(__uuidof(Connection));

	_RecordsetPtr pRSet(__uuidof(Connection));

	try
	{
		pCon.CreateInstance("__uuidof(Connection)");
	} 
	catch(_com_error e)
	{
		cout<<"创建连接实例失败!"<<endl;
		cout<<e.Description()<<endl;
		cout<<e.HelpFile()<Open("driver={SQL Server};Server=.;DATABASE=linping;","sa","",adModeUnknown);

	} 
	catch(_com_error e)
	{
		cout<<"数据库初始化失败!"<<endl;
		cout<<e.Description()<<endl;
		cout<<e.HelpFile()<<endl;

		return 0;
	}

	cout<<"连接成功!"<Execute("select * from card",NULL,adCmdText);

		if(!pRSet->adoBOF)
		{
			pRSet->MoveFirst();
		}
		else
		{
			cout<<"表内数据为空!"<<endl;

			return 0;
		}

		vectorcolumn_name;

		for(int i = 0;iFields->GetCount();i++)
		{
			cout<Fields->GetItem(_variant_t((long)i))->Name<Fields->GetItem(_variant_t((long)i))->Name);
		}

		while(!pRSet->adoEOF)
		{
			vector::iterator iter = column_name.begin();
			for(iter;iter!=column_name.end();iter++)
			{
				if(pRSet->GetCollect(*iter).vt !=VT_NULL)
				{
					cout<GetCollect(*iter)<<endl;
				}
				else
				{
					cout<<"NULL"<MoveNext();
			cout<<endl;
		}

	} 
	catch(_com_error &e)
	{
		cout<<e.Description()<<endl;
		cout<<e.HelpFile()<Close();
		pCon->Close();
		pRSet.Release();
		pCon.Release();
	}
	catch(_com_error &e)
	{
		cout<<e.Description()<<endl;
		cout<<e.HelpFile()<<endl;

		return 0;
	}

	CoUninitialize();


	return 0;
}


 



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭