博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码_ADO_查询数据
阅读量:2338 次
发布时间:2019-05-10

本文共 1670 字,大约阅读时间需要 5 分钟。

1.在StdAfx.h最后面增加

#include
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")

2.在***App Class中InitinStance事件中添加

if(!AfxOleInit())	{		AfxMessageBox("OLE初始化出错!");		return FALSE;	}
注意:添加时位置最好在紧接AfxEnableControlContainer()之后

3.在OnButton事件中添加

//查询功能void CDATABASE_ADO_TESTDlg::OnButton1() {	// TODO: Add your control notification handler code here	UpdateData(TRUE);	m_strName="";	m_strMajor="";	m_strSex="";	m_iAge=20;	UpdateData(FALSE);	if(m_strID==0)	{		MessageBox("输入ID不能为空!");		return;	}	//创建结果集实例	_RecordsetPtr pRS;	if(FAILED(pRS.CreateInstance("ADODB.Recordset")))	{		AfxMessageBox("Create Instance failed");		return;	}	//创建SQL查询语句	CString strSRC=GetConnStr();	CString strSQL;	strSQL.Format("select * from Student where StudentID=%d",m_strID);	//打开数据库,ADO::Open(sql语句,数据库路径,光标类型
<常量>
,锁定类型,sql类型),在文章最后各常量都有列举 if(FAILED(pRS->Open((_variant_t)strSQL,(_variant_t)strSRC,adOpenStatic,adLockOptimistic,adCmdText))) { AfxMessageBox("Can not open Database!"); pRS->Release(); return; } //历遍所有结果集记录 while(!pRS->rsEOF) { _variant_t varName; varName=pRS->GetCollect("Name"); m_strName=(char *)_bstr_t(varName); varName=pRS->GetCollect("Sex"); m_strSex=(char *)_bstr_t(varName); varName=pRS->GetCollect("Major"); m_strMajor=(char *)_bstr_t(varName); varName=pRS->GetCollect("Age"); m_iAge=atoi((char *)_bstr_t(varName)); pRS->MoveNext(); } //更新数据 UpdateData(FALSE); pRS.Release();}
注意:1.pRS.Release使用的是释放单元内存,而不是->,

创建实例的时候使用'.',而不是用->

2.如果无法打开,或报错,请使用

try	{	}	catch (_com_error &e)	{		AfxMessageBox((char*)e.Description());	}
进行调试

3.代码中用到的(_variant_t)是将任意变量转换为最合适的类型

4.ADO的光标类型,ADO的锁定类型,ADO的光标服务位置等定义,请参见

 

转载地址:http://mngpb.baihongyu.com/

你可能感兴趣的文章
感知视频编码
查看>>
深度学习 vs 机器学习 vs 模式识别
查看>>
Tone mapping进化论
查看>>
XAVC
查看>>
详解HDR的三个标准——HLG/HDR10/Dolby Vision
查看>>
流言终结者 1080P全高清都等于高画质?
查看>>
PSNR指标值
查看>>
灰度图像-图像增强 中值滤波
查看>>
两种HDR格式(HLG, HDR10)的理解
查看>>
视频主观质量对比工具(Visual comparision tool based on ffplay)
查看>>
HDMI 接口及CEC信号
查看>>
H.264专利介绍
查看>>
YUV格式小结
查看>>
log4j2.xml实用例子
查看>>
Dockerfile中的CMD和ENTRYPOINT有什么区别?
查看>>
jQuery提示和技巧
查看>>
是否可以在Python中将长行分成多行[重复]
查看>>
使用pip找不到TensorFlow
查看>>
命令行上的Node.js版本? (不是REPL)
查看>>
你什么时候使用Builder模式? [关闭]
查看>>