把庫從XP轉到2003是沒有問題的,轉回來也是可以的。但是我從97年轉到03年的時候出現了壹個問題。起初,我也有類似的問題。妳說的是錯誤現象,我們猜不到妳的程序。
哪裏有問題,哪裏就有缺陷。我建議妳在操作數據庫的時候加壹個斷言。
resources/library/CHS/default . ASP?URL =/library/CHS/CP guide/html/cpconassert . ASP
或者添加錯誤處理(嘗試{...}catch(...){...})操作數據庫時,這樣可以知道錯誤發生在哪裏,例如:
BOOL codbcchandle::set connection(c string strDSN,CString strUID,CString strPWD)
{
CString字符串;
海峽。格式(" DSN = % s;UID = % s;PWD=%s”,strDSN,strUID,str pwd);
BOOL bStatus = FALSE//數據庫打開成功嗎?
m _數據庫。SetLoginTimeout(3);//連接超時屬性
嘗試
{
如果(!m _數據庫。IsOpen())
{
bStatus = m_database。OpenEx(str,c database::open readonly | c database::noOdbcDialog);
if(bStatus)
AfxMessageBox("連接成功。");
}
}
Catch(CMemoryException *pEx) //處理內存異常
{
pEx-& gt;ReportError();
返回FALSE
}
Catch(CDBException *pDBEx) //處理數據庫異常。
{
pDBEx-& gt;ReportError();
TRACE(" RetCode:% d str error:[% s]strState:[% s]\ n ",pDBEx-& gt;m_nRetCode,pDBEx-& gt;m_strError,pDBEx-& gt;m _ strstanativeorigin);
返回FALSE
}
返回TRUE
}
嘗試{...}catch(...){...}資源/庫/chs/default.asp?URL =/library/CHS/cs ref/html/vclrfthetrycatchstatement . ASP
以上是跟蹤錯誤處理。但是我不知道妳的程序是什麽樣的,所以不知道怎麽處理。
2.方法
用vc訪問Access數據庫,就像我朋友上面說的。操作訪問可以不經過數據源直接訪問數據源。
訪問數據庫的模式壹般有ODBC、DAO、ADO等。上面這位朋友用的是ADO。妳可以看到,在壹開始,他在程序中引入了msado15.dll動態庫。它封裝了ADO對象,
方法和屬性等等。然後初始化COM庫,再用_ConnectionPtr對象(ADO的三個對象之壹)連接數據庫。_RecordsetPtr對象是壹個記錄集對象,也是我們對庫的操作。
大部分都是對它的操作,裏面有很多功能。妳可以去MSDN看看。
我上面的代碼是用ODBC連接的,ODBC是最基本最通用的模式。妳可以說他支持任何圖書館。關於ODBC,微軟提供了CDatabase類和CRecordset類,以及如何使用。
類似上面的。如果妳有任何問題,以後再和妳談。
我建議以後把問題說清楚,不然我們幫不了妳。