線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:7427
推到 Plurk!
推到 Facebook!

PGSQL 資料庫 RESTORE失敗

尚未結案
vmp
一般會員


發表:11
回覆:18
積分:5
註冊:2008-06-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-23 11:13:08 IP:220.130.xxx.xxx 訂閱
由於目前delphi不支援UTF8,因此資料存入PGSQL時會發生編碼錯誤問題
原因:例如的資料庫可能有些資料是BIG5編碼,而前端系統無法判別使用何種編碼系統,資料輸入又可能是歐語系編碼,
造成DB資料充斥著一堆各國的編碼資料,PGSQL無法同時正確判斷哪些資料該轉換成哪種編碼 因此在DUMP資料出來時,
輕則資料變亂碼,重則整個DB會RESTORE失敗。
請教一下 各位大大是否有比較好的建議可以幫助完成 RESTORE
------
Delphi 6
postgresql 8.1.4

kevin2004
資深會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-04-13 19:23:00 IP:118.161.xxx.xxx 未訂閱
8.14版是有問題的一版。我在那有吃過苦頭。
8.1x到8.2X/8.3X的DBTYpe是有點不一樣。
在不同版次間轉資料,會有點問題。
以前我轉8.1X到8.2X時就有遇到問題,整個資料庫就是有一些資料轉不過來。當初只
有找出這些有問題的資料,砍了重建了事。
這麼寫,應該是幫不上忙。
------
Kevin
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-04-14 09:39:00 IP:60.249.xxx.xxx 未訂閱
看過有人下這 sql,但我不知 什麼意思~~

SQLExecute("SET NAMES 'utf8'; SET CHARACTER_SET 'utf8'; ")


===================引 用 vmp 文 章===================
由於目前delphi不支援UTF8,因此資料存入PGSQL時會發生編碼錯誤問題
原因:例如的資料庫可能有些資料是BIG5編碼,而前端系統無法判別使用何種編碼系統,資料輸入又可能是歐語系編碼,
造成DB資料充斥著一堆各國的編碼資料,PGSQL無法同時正確判斷哪些資料該轉換成哪種編碼 因此在DUMP資料出來時,
輕則資料變亂碼,重則整個DB會RESTORE失敗。
請教一下 各位大大是否有比較好的建議可以幫助完成 RESTORE
kevin2004
資深會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-04-14 19:44:01 IP:61.219.xxx.xxx 未訂閱
SQLExecute Function

Conformance
Version Introduced: ODBC 1.0 Standards Compliance: ISO 92
Summary
SQLExecute executes a prepared statement, using the current values of the parameter marker variables if any parameter markers exist in the statement.
Arguments
StatementHandle
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE, or SQL_PARAM_DATA_AVAILABLE.
SQLExecute returns either SQL_ERROR or SQL_SUCCESS_WITH_INFO, an associated SQLSTATE value can be obtained by calling HandleType of SQL_HANDLE_STMT and a StatementHandle. The following table lists the SQLSTATE values commonly returned by SQLExecute and explains each one in the context of this function; the notation "(DM)" precedes the descriptions of SQLSTATEs returned by the Driver Manager. The return code associated with each SQLSTATE value is SQL_ERROR, unless noted otherwise.
------
Kevin
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-04-16 17:44:37 IP:60.248.xxx.xxx 未訂閱
你是哪裡看到的,這是 MySQL 的語法,不是 PostgreSQL 的,別隨便牽紅線
在 PostgreSQL 的環境是執行 set client_encoding to 'XXX' 來指定 Client 所用的編碼
可以在完成連線後用 ExecSQL 執行

===================引 用 salo0610 文 章===================
看過有人下這 sql,但我不知 什麼意思~~

SQLExecute("SET NAMES 'utf8'; SET CHARACTER_SET 'utf8'; ")
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
編輯記錄
bestlong 重新編輯於 2010-04-16 17:45:38, 註解 無‧
系統時間:2024-11-05 5:29:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!