全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5780
推到 Plurk!
推到 Facebook!

如何將PgAP_exe由32位元移到Win7-64位元

 
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-11-04 15:54:24 IP:118.161.xxx.xxx 未訂閱
小弟在約一年前試者將我寫的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 重新編輯於 2010-11-04 01:57:19, 註解 無‧
kevin2004 重新編輯於 2010-11-04 01:59:17, 註解 無‧
kevin2004 重新編輯於 2010-11-04 01:59:34, 註解 無‧
kevin2004 重新編輯於 2010-11-04 02:00:10, 註解 無‧
kevin2004 重新編輯於 2010-11-04 02:07:31, 註解 無‧
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-11-05 19:23:54 IP:118.161.xxx.xxx 未訂閱
小弟這幾天在趕案子,只能抽空來寫帖子,抱歉了。
這篇主要是講系統環境及系統環境中的資料庫部份。
系統環境主要是指客戶端電腦為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 重新編輯於 2010-11-05 06:27:13, 註解 無‧
kevin2004 重新編輯於 2010-11-05 18:03:31, 註解 無‧
kevin2004 重新編輯於 2010-11-05 18:05:56, 註解 無‧
kevin2004 重新編輯於 2010-11-05 18:13:48, 註解 無‧
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-11-05 19:28:04 IP:118.161.xxx.xxx 未訂閱
共用的DLL要放在那?
DLL不是放在C:\Windows\System32下,那無用的。要放在
C:\Windows\SysWOW64\下。否則你只能將DLL同你的EXE放
在一起才行。
Win7-64還真麻煩。
------
Kevin
編輯記錄
kevin2004 重新編輯於 2010-11-05 06:27:48, 註解 無‧
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-11-05 19:36:47 IP:118.161.xxx.xxx 未訂閱
我是用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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-11-06 18:26:27 IP:111.254.xxx.xxx 訂閱
更吐血的,是在控制臺內用 odbc 搜尋後,有一個寫著「Data Sources (ODBC) (32 位元)」的項目
其實它還是 64 位元的

就跟凌凌漆的道具一樣,表面上看起來是吹風機,實際上是個刮鬍刀
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-11-04 19:47:50 IP:114.37.xxx.xxx 未訂閱
在Win7/WinServer2008R2下還真麻煩,有時還是會有問題,下面還有幾招:

1.記得將你的exe放在 C:碟


2.再不行,以系統管理員身份執行。exe要存取相關DSN資料,沒此是不行的。
我還有一支很老很老的程式,裏面還有殺不光的BDE在裏面,不以系統管理員
身份是會當機的。


3.再不行,請右點此exe,設其相容性吧。記得可設Win7/Vista/win2K,總之沒有SP就對了。
------
Kevin
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-11-04 19:51:53 IP:114.37.xxx.xxx 未訂閱
sryang兄,

沒有回您的文,抱歉了
實在是工作太忙了,而且現在Delphi用的機會越來越少了,很久很久,才會回來站裏翻翻文章
謝謝您的回應

===================引 用 sryang 文 章===================
更吐血的,是在控制臺內用 odbc 搜尋後,有一個寫著「Data Sources (ODBC) (32 位元)」的項目
其實它還是 64 位元的

就跟凌凌漆的道具一樣,表面上看起來是吹風機,實際上是個刮鬍刀
------
Kevin
編輯記錄
kevin2004 重新編輯於 2011-11-04 05:53:05, 註解 無‧
系統時間:2024-04-25 10:20:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!