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进行连接
发布评论