VC++ ADO操作数据库

//进行简单的查询和插入。Password改成自己的密码 和Data Source要改成自己的主机名或者IP

_ConnectionPtr m_pConnection;//连接对象指针
	_RecordsetPtr m_pRecordset;//记录集对象指针
	//初始化COM环境
	CoInitialize(NULL);
 
	try
	{
	
		m_pConnection.CreateInstance(__uuidof(Connection));//创建连接对象实例
		//连接字符串
		m_pConnection-> CursorLocation   =   adUseClient; 
		_bstr_t strConnect="Provider=SQLOLEDB.1;Password=lcalqf;Persist Security Info=True;User ID=sa;Initial Catalog=Test;Data Source=2012-20140715VJ";//也可复制你数据库连接时的服务器名
	//	
	  	m_pConnection-> CursorLocation   =   adUseClient; 
		m_pConnection->Open(strConnect,"","",adModeUnknown);
	}
//	捕获错误
	catch(_com_error e)
	{
		//可以直接输出消息提示出错,我们这里要把出错的消息输出
		CString strComError;
		//注%08lx表示用8位数字表达一个十六进制指针地址,格式为0X1234ABCD,如果长度不足8位用前导0表示。L表示整行x表示16进制(小写),X表示16进制(大写)
		strComError.Format("错误编号:%08lx\n错误信息:%s\n错误源:%s\n错误描述:%s",e.Error(),//错误编号
			e.ErrorMessage(),//错误信息
			(LPCTSTR)e.Source(),//错误源
			(LPCSTR)e.Description());//错误描述
		MessageBox(NULL,strComError,"错误",MB_OK);
	}
	m_pRecordset.CreateInstance(__uuidof(Recordset));

 	///
	m_pRecordset=m_pConnection->Execute("SELECT *FROM 仓库",NULL,adCmdText);
	while(!m_pRecordset->adoEOF)
	{
		_variant_t value;
	    _variant_t vIndex=(long)2;//读取第二例
		value=m_pRecordset->GetCollect(vIndex);//读取第一个字段的值放在value
		
		CString str=(LPCSTR)(_bstr_t)value;
		char *pInfo=new char[50];
	 	memset(pInfo,0,50);
		strcpy(pInfo, (LPCSTR)_bstr_t(value));  
        m_pRecordset->MoveNext();
	}
	try
	{
		
		m_pRecordset=m_pConnection->Execute("Insert INTO 仓库 (仓库编号,仓库号,城市,面积) VALUES('4','004','济南','1400')",NULL,adCmdText);
	}
	//	捕获错误
	catch(_com_error e)
	{
		//可以直接输出消息提示出错,我们这里要把出错的消息输出
		CString strComError;
		//注%08lx表示用8位数字表达一个十六进制指针地址,格式为0X1234ABCD,如果长度不足8位用前导0表示。L表示整行x表示16进制(小写),X表示16进制(大写)
		strComError.Format("错误编号:%08lx\n错误信息:%s\n错误源:%s\n错误描述:%s",e.Error(),//错误编号
			e.ErrorMessage(),//错误信息
			(LPCTSTR)e.Source(),//错误源
			(LPCSTR)e.Description());//错误描述
		MessageBox(NULL,strComError,"错误",MB_OK);
	}
	m_pConnection->Close();

	CoUninitialize();//释放COM库


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值