1. 程式人生 > >x64 win64編譯環境下ADO連結Access資料庫的問題解決

x64 win64編譯環境下ADO連結Access資料庫的問題解決

Win32編譯環境下,用ADO資料庫連線Access資料庫一般都不會報錯,但是最近由於專案上的需要,程式需要編譯成64位以便申請到更多的使用記憶體空間,當把編譯方式從Win32改為x64的時候,突然出現了資料庫連接出現未知錯誤,這時候就猜到了應該是編譯環境的改變導致了資料庫連接出錯,在參考了其他大神的解決方案之後,終於解決了這個問題,我的環境為Win7 64+MFC(VS2010)+ADO+Access2007。

    參考連結如下:

    http://blog.csdn.net/sundacheng1989/article/details/17925431

    http://www.cnblogs.com/bluedoctor/p/3925871.html

    http://blog.csdn.net/kirawoo/article/details/39032387

    http://blog.csdn.net/u010891996/article/details/12522911

解決方法:

步驟1:去官網下載AccessDatabaseEngine_64.exe,下載連結

https://www.microsoft.com/zh-cn/download/details.aspx?id=13255

或者直接去我的下載頻道進行下載

http://download.csdn.net/detail/hw140701/9830665


步驟2:這一個步驟是強制安裝剛剛下載的AccessDatabaseEngine_64.exe,如果不強制安裝的話,它會要求你解除安裝你所安裝的全部的Office軟體,那多麻煩!!!,所以選擇忽略提醒,強制安裝,

開啟cmd.exe,在命令列輸入“你的AccessDatabaseEngine_64.exe的存放路徑” /passive,比如我的就是"F:\軟體\我下載的\Windows資料庫程式設計\AccessDatabaseEngine_64.exe" /passive強制安裝,輸完這個命令就等待安裝完成。

步驟3:在安裝完上述引擎之後,你需要修改一下你的程式碼,在win32編譯環境下我們的資料庫的連結字串是

m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);

如果你需要在x64的編譯環境環境下連線Access資料庫你需要修改為

m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);

為了更好的適配不同的編譯環境,我將我的程式碼修改為

//初始化COM,建立ADO連線物件例項 
	getsample_pConnection.CreateInstance(__uuidof(Connection));
	getsample_pRecordset.CreateInstance(__uuidof(Recordset));
	//構造資料庫連線字元
	CString m_connection;
	#if defined _WIN64//如果是64位程式
	m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);
	#elif defined _WIN32//如果是32位程式
	m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);
	#endif
	
	try
	{	
		//使用Open方法連線資料庫
		getsample_pConnection->Open(_bstr_t(m_connection),"","",adModeUnknown);
		//以下兩行用來設定狀態列的提示資訊 
	}
	catch(_com_error e)//捕捉資料庫開啟過程中的錯誤資訊
	{
		
		CString tempErrorMessage;
		tempErrorMessage.Format("資料庫連線失敗,錯誤原因為:%s",e.ErrorMessage());
		AfxMessageBox(tempErrorMessage)
	}

當是64位程式的時候就為

m_connection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s",databaseName);

當是32位程式的時候就為

m_connection.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",databaseName);

然後重啟一下PC,應該就可以編譯成功了。

相關推薦

x64 win64編譯環境ADO連結Access資料庫的問題解決

Win32編譯環境下,用ADO資料庫連線Access資料庫一般都不會報錯,但是最近由於專案上的需要,程式需要編譯成64位以便申請到更多的使用記憶體空間,當把編譯方式從Win32改為x64的時候,突然出

VC連線ADO方式ACCESS資料庫在WIN7編譯到XP不能執行解決方法

以下為轉載: 不知道大家有沒有遇見這種情況,在WINDOWS7下編寫的ADO連線資料庫的程式,放在WIN XP下就會發現連線失敗的現象,在網上找了一些資料也沒找著,回頭看程式碼,其中有一句是載入ADO驅動,就是import C:\Program Files\Common

Linux中USB無線網絡卡實現AP模式(hostapd交叉編譯環境

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

交叉編譯環境動態庫的製作與測試

1、製作一個max.c原始檔,內容如下: int max(int n1, int n2) {     return ( n1 > n2 ) ? n1 : n2 ; }   2、製作一個test_max.c原始檔,內容如下: #include <

交叉編譯環境靜態庫的製作與測試

1、編寫my_print.c原始檔,內容如下: #include <stdio.h> void cout(const char * message) {     fprintf(stdout, "%s\n", message); } 2、編寫my_lib.h

VS2015編譯環境CUDA安裝配置

CUDA下載 CUDA是NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題,CUDA只支援NVIDIA自家的顯示卡,過舊的版本型號也不被支援。 雙擊安裝包,彈出對話方塊,

Linux樂彩平臺搭建環境Memcached安裝及問題解決

https 問題 3.2 解決 問題解決 lin 新版 all ann 一. 樂彩平臺搭建安裝論壇:haozbbs.com Q1446595067 步驟 1.1 安裝libevent,當前最新版本為2.1.8,官網:http://libevent.org/ wget htt

springboot環境配置使用sqlite資料庫

在springboot環境下,使用mybatis配置sqlite資料庫。 pom檔案匯入mybatis和sqlite依賴 <dependency> <groupId&

Linux環境BufferedImage Graphics drawString 亂碼解決方法

今天專案在linux伺服器上面,登入頁的圖片驗證碼顯示亂碼,本地windows環境正常。 g.setFont(new Font("Candara", Font.BOLD, 24)); 寫文字進入圖片之前必須設定字型 BufferedImage在記憶體建立的影象呼叫的是伺服器端的字型,所以

TP5框架在nginx環境路由報404錯誤解決方法 親測可用

前段時間給客戶寫了個TP5框架的後臺,主要是API呼叫,上傳到客戶伺服器後發現首頁可用,但所有內頁報404錯誤,網上一搜發現天多一樣的問題,但找了很多都是不可用的,而且都是過時的,但最終還是自己試出來了,今天貼下,親測可用。 寶塔面板windows-5.4.0+Ngin

Mono環境不支援中文的解決方法

這是因為中文的程式碼支援包沒有安裝,啟動YaST安裝軟體,在“全部”組裡檢索mono-locale-extras關鍵字,選中mono-locale-extras後點擊Install,一路next就可以了。有依賴關係的軟體包會自動安裝。當你在mono網站下載安裝mono開發環境的時候,安裝軟體會自動在軟

VC++使用ADO開發ACCESS資料庫

VC++使用ADO開發ACCESS資料庫 ADO和ADOX到底是什麼,二者的作用和區別 ADO是Microsoft 最新推出的資料庫訪問的高層軟體介面。它和Microsoft以前的資料庫訪問介面DAO、RDO相比具有更大的靈活性,使用也更方便,開發效率大為提高。 ADOX是核心ADO

Spring-boot在Liunx環境啟動卡頓問題解決

問題 spring-boot專案在本地啟動時,速度非常快,但是在Liunx伺服器上釋出時,日誌除了10幾行出現卡頓很長一段時間(5-10分鐘)才會完成。 原因 這是因為sprin

c++呼叫ado連結mssql資料庫詳解

最近程式中用到讀寫資料庫,看了些例子,查了番MSDN,下面把詳細步驟寫出來,以備忘,或與同行共勉。 讀寫資料庫的技術很多,現在多用ADO。ADO以COM方式提供,所以它的很多行為遵循COM規範。首先,要引入ADO的COM檔案,它的位置一般在"C:/Program Fi

VC6.0 通過ado連線access資料庫

  我們可以使用AfxOleInit()來初始化COM庫,這項工作通常在CWinApp::InitInstance()的過載函式中完成,請看如下程式碼:: public: _ConnectionPtr m_pConnection

windows7環境將Mondrian例子資料庫匯入到mysql中

1.獲取需要的jar包下載mondrian-3.4.1.zip 解壓至C:\mondrian 拷貝C:\mondrian\lib下的mondrian.war到tomcat下的webapps下 重啟tomcat.自動載入webapps - mondrian.war 拷貝to

RAC環境序列快取導致資料庫序列不同步

 一、【問題描述】最近,客戶提出,KC70的醫療賬戶使用餘額與KC04中的賬戶餘額不一致。二、【分析過程】根據資料庫後臺包查得,後臺包是根據KC70中最大的OAE001取每個人當前的餘額,按照正常的思路,序列是遞增的,應該不會有問題。查詢該人的KC70(如上圖),發現有兩條記

Mac 環境Android studio無法開啟解決

最近在使用mac電腦雖然鼓搗了半天終於能翻牆了,但是gradle下載的龜速真是讓我不敢恭維啊好幾次都是下載1到2個小時候由於沒耐心了不再等了。 接下來我們就介紹個解決mac建立工程等待半天無法開啟的方法 1.首先我們需要下載對應的greale我的是3.3的

python在Anaconda環境安裝及其出現問題解決

直接百度搜Anaconda官網但網速較慢,還可以用清華映象,網速挺快的,推薦,具體自己可以百度 下載完雙擊開啟一直next,直至出現安裝路徑可以根據自己需要選擇,路徑儘量簡單英文就行了,但用中文或者有空格,容易出錯,然後一直next,經過漫長的等待就安裝成功了,本來是有圖的

如何通過ADO獲得Access資料庫中的所有使用者表和表資訊

本文介紹一種通過ADO列舉Access檔案中所用使用者表和表資訊的方法,僅供參考,原始碼在VC6.0 +XP環境通過測試。 首先,需要引入msado15.dll檔案,在stdafx.h中新增: #import "c:/program files/common files/s