如何將PgAP_exe由32位元移到Win7-64位元 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
小弟在約一年前試者將我寫的PgDbAp由32位元之XP/2003Ser移到
Win7-64下。一直沒有成功。初期依樣劃胡盧,將WinPg8.25裝在Win7 上...,但發覺exe根本無法執行,因為32位元的psqlODBC無法在Win7 下執行。後來上網找了老半天,找到64位元的psqlODBC,甚至還找到 如何教你作64位元的psqlODBC。但又發現DLL好像又死掉了,非要放 在Exe同目錄才可以。WinRAR又無法由Exe召喚...總之,放棄了。 最近因試者將Java開發環境由Fedora移到Win7-64,無意間竟然解決了這 個『PgDbAp由32位元之XP/2003Ser移到Win7-64』的問題。原來, 我Coding時很習慣用支WinExe記錄及查索我的FedoraPgDb,所以寫 java時,我習慣同時開個Win虛擬機作這件事。當我將Java環境在 Win7-64建好了以後,我想是不是可以不要那麼麻煩,不要在Win7下又 啟動一個2003vm,我就又試了一天,竟然給我過關斬將,風捲殘雲, 解決了這個問題。真所謂有心栽花花不發,無心種柳柳成陰。 一來愛Show,一來也是分享回饋,小弟將相關技巧貼出與同好分享之。 待小弟逐項報告。各位依表操課,必水到渠成。
------
Kevin |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
小弟這幾天在趕案子,只能抽空來寫帖子,抱歉了。
這篇主要是講系統環境及系統環境中的資料庫部份。 系統環境主要是指客戶端電腦為Win7-64,後端資料庫可以是本機或遠端 的Win/Linux-PostgreSQL,或MSSQL/MySQL/Oracle,都可以。 最簡單的是DB也在本機的Win7-64上的PostgreSQL。這就是所謂的單機版 。或是另一臺Win/Linux的PostgreSQL資料庫。而這個後端的PostgreSQL 資料,可以是PostgreSQL9.x/8.4x/8.2x均可以的。 如果是單機版,那本機要裝WinPostgreSQL不用說。這時只能裝 PostgreSQL9.X,因為只有這個版本才有64位元的功能。其他的8.45或 8.25是不可以裝在Win7-64下的。 如果PostgreSQL資料庫在另一台電腦中,因為小弟寫的備取是利用Pg_dump 及Pg_Restore辦理的,所以可能也要在exe本機上裝份WinPostgreSQL,或 至少將別台的C:\Program Files\PostgreSQL\9.0\bin\整個目錄拷過來才行。 // PostgreSQL真是個很特殊的產品,至少在WinPostgreSQL版本上是如此。 // 如果你要用Pg_Dump.exe,你只要有相關檔就可以了,不要求你一定 // 要裝PostgreSQL。 // 我嫌每次要對Pg下psql命令很麻煩,PgAdmin的功能又有點死,不夠圓通, // 有時要下批次管理功能時,PgAdmin也力有未逮,要包裝如SetUp的自動 // 化功能時,PgAdmin也無法派的上用場,去客戶那也無法寄望客戶的電腦 // 裏一定會有裝Pg,所以我自己寫了些工具放在CD上,這裏面就只要有拷 // bin\就可以了。 在WinPostgreSQL8.25﹝這是個好老的版本,至少有兩三年了﹞,psqlODBC 要自行安裝。可是在WinPostgreSQL8.45以後psqlODBC的安裝就被包在 WinPostgreSQL的安裝中了,不必再自行下載及安裝了。 // 同時也將jdbc及相關東東等一大推一起貼心的包在一起了,而且隨時想 // 要補裝也可隨時辦理了,真是貼心至極。 在Win7-64本機上裝WinPostgreSQL簡單極了,小弟就不多廢話了。 記得一點,因為WinPostgreSQL8.25用的是PgAdmin1.6、而WinPg8.45用的 PgAdmin是1.8,而WinPG9.x是用PgAdmin1.10,相關的Pg_Dump.exe及 Pg_Restore.exe也是不同的。而Pg_Dump/Pg_Restore執行時會將版本資 訓寫入結果檔及執行前會比對來源檔的檔頭資料的。它可以往前相容, 但無法往後相容。所以你可以用WinPg9.x的Pg_Dump/Pg_Restore去存取 Win/Linux-Pg9.x/8.4.8.2的資料庫,也可讀取由舊版的PG所作的*.backup 。但你不可反其到而行。 1.意即你後端可以是win/Linux-9.x/8.4/8.2-PostgreSQL-DB,只要你前端用的 是9.x的Pg_Dump/Pg_Restore就可以了。這很合理及符合客戶環境。 資料庫就講到這了。
------
Kevin |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
我是用psqlODBC聯上Pg的。如果你要在Win7-64下設定
ODBC-DSN,當你叫出UI後,你會大吃一驚。你會說 我明明在裝WinPostgreSQL9.01時已裝了psqlODBC,為 何這時看不到psqlODBC。這個問題,當初也是煩了我 好久好久。上網翻天覆地,在機械的Reg裏也找了半死, 都無法解決。後來才知道,原來: 1.錯因不論xp/2003/win7-64的UI叫出來的均是 C:\windows\System32\odbcad32.exe 2.你應以檔案總管以手動叫 C:\windows\SysWOW64\odbcad32.exe 真令人吐血,不是嗎?
------
Kevin |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |