VC访问数据库技术的方法实例.doc
文本预览下载声明
VC访问数据库技术的方法实例 1.?????ODBC——开放数据库互联
ODBC为使用不同的关系数据库提供了一个统一的程序设计接口。在安装不同的数据库后,需要创建ODBC数据源,
2.?????DAO——数据访问对象
3.?????RDO——远程数据对象
4.?????OLE DB——对象连接与嵌入数据库
5.????? ADO——ActiveX数据对象
?
这里我说明我使用的两种方法:ODBC和ADO。
?
1.????? ?ODBC
在安装数据库首先要创建ODBC数据源,使用CDatabase和CRecordset两个MFC的类与数据库建立连接,访问数据库。
1.1????????????? 条件
包含头文件:#include afxdb.h
声明成员变量:CDatabase m_dbPostGre;
1.2????????????? 连接数据库
?????? int nRetVal;
?????? nRetVal = m_dbPostGre.OpenEx( _T( DSN=PostgreSQL30W;UID=PostGre;PWD=PostGre ),
?????????????????????????????????? ???????????????????? ?CDatabase::openReadOnly | CDatabase::noOdbcDialog );
?????? if ( nRetVal )
?????? {
????????????? AfxMessageBox( _T( 连接数据库成功! ) );
?????? }
1.3????????????? 访问数据
?????? CRecordset recordset( m_dbPostGre );
?????? CString strSQL = _T( select * from product );
?????? recordset.Open( CRecordset::forwardOnly, strSQL, CRecordset::readOnly );
?
?????? CDBVariant var;
?
?????? while ( !recordset.IsEOF() )
?????? {
????????????? TAG_PRODUCTINFO tagProductInfo;
????????????? // ID
????????????? recordset.GetFieldValue( _T( ID ), var );
????????????? tagProductInfo.nProductID = var.m_iVal;
????????????? // Name
????????????? recordset.GetFieldValue( _T( Name ), tagProductInfo.strProductName );
?
????????????? m_vecProductInfo.push_back( tagProductInfo );
?????????????
????????????? recordset.MoveNext();
?????? }
?
?????? recordset.Close();
?
2.????? ADO技术
ActiveX Data Object, ActiveX数据对象。
ADO建立在OLE DB之上,采用ADO技术访问数据库的话,实际的调用过程是:ADO客户程序通过ADO再访问OLE DB提供的程序,这样访问速度就要慢一些。
如果某个关系型数据库没有OLE DB的提供程序,那么可以利用ODBC的OLE DB提供程序去访问ODBC,然后利用ODBC再去访问支持ODBC的数据库。
2.1????????????? 条件
l???????? 头文件和动态库的加载
#include comdef.h
#include atlbase.h
#pragma ??warning(disable:4146)?
#import?? C:\Program Files\Common Files\System\ado\msado15.dll?? named_guids?? rename(EOF,adoEOF),?? rename(BOF,adoBOF)?
#pragma?? warning(default:4146)?
using?? namespace?? ADODB;
l???????? COM组件的加载
?????? if ( CoInitialize( NULL ) != 0 )
?????? {
????????????? AfxMessageBox( _T( 初始化Com库失败!
显示全部