2024年4月19日发(作者:)

初始化COM库

在工程的App类的InitInstance ( )函数里面加上

AfxOleInit ( );//MFC用法

C++的常规方法是--------

:

::CoInitialize(NULL);

….

::CoUninitialize();

3)使用记录集对象得到一个纪录集的基本步骤

//生成一个Connection对象,并连结上数据库

_ConnectionPtr m_pConnection;

HRESULT hr;

try

{

hr=m_Instance(__uuidof(Connection));

if(SUCCEEDED(hr))

{

m_pConnection->Open("Provider=.4.0;

Data Source=小学.mdb","","",adModeUnknown);

}

}

catch(_com_error e)

{

CString errormessage;

("连接数据库失败!rn错误信

息:%s",essage());

AfxMessageBox(errormessage);

}

//生成RecordSet对象,并得到纪录集

_RecordsetPtr m_pRecordset;

m_Instance("set");

CString temp="SELECT * FROM "+tablename;

//tablename假设是一个CString

类型的表名

_variant_t sql;

ing(temp);

m_pRecordset->Open(sql,

m_erfacePtr( ),

adOpenDynamic,adLockOptimistic,adCmdText );

4)动态查询

CString tablename;

tablename=_T("学籍");

CString temp=_T("SELECT * FROM ")+tablename+_T(" WHERE NAME='")+

dlg.m_name+_T("'");

_variant_t sql;

ing(temp);

m_pRecordset->Open(sql,m_erfacePtr(),

adOpenDynamic,adLockOptimistic,adCmdText);

5)遍历纪录集

int line=0;

while(!m_pRecordset->adoEOF)//遍历记录集,并将所有纪录显示在列表视图中

{

。。。。。。

line++;

m_pRecordset->MoveNext();

}

其余操作都很简单,可以参见其他文章,最关键的是,不要忘了关闭纪录集,因

为这通常会造成异常

6)使用ADO连接不同的数据库的方式:

根据不同的数据提供者可以分为ODBC和OLEDB等若干种方式,ODBC兼容性更好,

支持OLEDB的数据库相对少一点;

连接SQL Server数据库:

1)

Microsoft OLE DB Provider for ODBC

m_pConnection->Open(“Provider=SQLOLEDB.1;DRIVER=SQLServer;SER

VER=lzhm;DATABASE=haitang”,"sa","sa",adModeUnknown);

2)未知方法,但是可行,注意Initial Catalog用空格分开

m_pConnection->Open(“Provider=SQLOLEDB.1;Data Source=lzhm;Initial

Catalog=haitang”,"sa","sa",adModeUnknown);

m_pConnection->Open ("Provider=SQLOLEDB;Data

Source=172.20.2.97;Network Library=DBMSSOCN;Initial

Catalog=haitang",”sa”,”sa”,adModeUnknown);

m_pConnection->Open ("Provider=SQLOLEDB;Network

Address=172.20.2.97;Initial

Catalog=haitang",”sa”,”sa”,adModeUnknown);

m_pConnection->Open ("Provider=SQLOLEDB;Network Address=172.20.2.97;

Network Library=DBMSSOCN;Initial

Catalog=haitang",”sa”,”sa”,adModeUnknown);

3)Microsoft OLE DB Provider for SQL Server

m_pConnection->Open(“Provider=SQLOLEDB.1;Data Source=lzhm;Initial

Catalog=haitang”,"sa","sa",adModeUnknown);

4)不使用DSN进行连接