MFC连接到数据库,数据库位置发生改变后,怎样重新接入?

2024-12-11 19:29:01
推荐回答(2个)
回答1:

无效XXX :: XXXX()
{

CString的STRSQL的;

CString的strName中

的CString strDriver =“微软Access驱动程序(*。mdb)的”;

CString的strDsn ;

的CString strFile =“D:\ \ Vm.mdb”;/ /数据库路径

strDsn.Format(“ODBC DRIVER = {S}; UID = SA; PWD =; DBQ =% “,strDriver,strFile);

TRY

{

的CDatabase m_db;

m_db.Open(NULL,假的,假的,strDsn);

CString的strConnect = m_db 。GetConnect();

的CRecordset的RS(m_db)

szInstallName =“'”+ szInstallName +“'”;

STRSQL =“SELECT *从VMVersions那里IRPFile =”+ szInstallName;

rs打开(STRSQL的CRecordset ::顺向的CRecordset ::只读); rs.GetFieldValue(“ID”,STRNAME); /> szName的szName的+'\ N'+ strName中;

rs.MoveNext();

m_db.Close();

的CDatabase m_db1;

m_db1。打开(NULL,假的,假的,strDsn);

strConnect = m_db1.GetConnect();

的CRecordset RS1(m_db1);

szInstallName =“'”+ szInstallName +“'”;

STRSQL =“SELECT * FROM VMCommitVersionNum,WHERE Verid公司=”+ strName中;

rs1.Open(的CRecordset ::顺向,STRSQL的CRecordset ::只读);

的nItem I = 0;

CString的szTemp =“”;

同时(!rs1.IsEOF()){

rs1.GetFieldValue(“VersionNum”,STRNAME);
>的nItem = ListCtrl的InsertItem(I,STRNAME);,

szTemp = CompareText(szTemp,STRNAME);

RS1。的MoveNext();

+ +;

}

m_db1.Close();

}

CATCH(CDBException,电子)

{

了AfxMessageBox(“数据库错误:”+ E-> m_strError);

}

END_CATCH;

}

/ /这数据库查询使用MFC是一个简单的例子,你可以参考以下的用法

回答2:

#import "C:/Program Files/Common Files/System/ado/msado15.dll"no_namespace rename("EOF","adoEOF")rename("BOF", "adoBOF") //导入ADO库写在stdafx.h文件末尾试试