2010-04-24 80 views
0

我有整理latin1_general_ci並具有土耳其字符值的表格。我可以在delphi 7 + zeos上使用這些數據,而且沒有問題。但我想升級我的delphi到2010版本,但zeos太慢,因爲我看到。所以我想使用odbc + ado或dbexpress解決方案。Mysql latin1土耳其數據和delphi 2010 utf8

dbexpress解決方案工作正常,顯示我輸入的數據和寫入輸入表沒有任何改變列字符集。但是我看到dbexpress存在問題。例如,當我從列中選擇*列類型爲varchar,decimal,int,tinyint,文本在xp系統上給出av錯誤時。 vista和7不會給出任何錯誤並且工作正常(未完全測試)。

在XP系統中訪問衝突跟蹤

是 訪問衝突調試跟蹤是

| 7C9010E0 | ntdll.dll中| | | RtlLeaveCriticalSection | |

| 7E419239 | USER32.dll | | | CharUpperBuffW | |

| 7E419216 | USER32.dll | | | CharUpperBuffW | |

| 7C80CED0 | kernel32.dll | | | LCMapStringW | |

| 7C910380 | ntdll.dll | | | RtlImageNtHeader | |

| 7C903247 | ntdll.dll | | | RtlConvertUlongToLargeInteger | |

| 7C90E485 | ntdll.dll | | | KiUserApcDispatcher | |

| 009A631E | Project1.exe | Unit1.pas | TForm1 | Button1Click | 110 [37] |

ado解決方案(dbgo)可以正常工作,但不會顯示我的數據爲輸入。它們希望一切都是utf。但在測試所有內容之前,我不想將數據轉換爲utf。我怎麼能看到我的數據輸入和編寫客戶端端UTF和存儲latin1(作爲zeos或dbexpress做)。

我被嘗試了許多其他選項。例如。 MySQL的排序和字符集參數。

對不起我的英語不好。我希望有人能理解我。

謝謝。

+0

我不明白你的情況,但你有沒有嘗試使用SET NAMES設置*連接*的字符集?另外,你應該描述你得到的錯誤信息。 – 2010-04-24 17:12:43

+0

是的嘗試過。但我的數據是latin1格式。其中包括土耳其人物。沒有轉換集名稱不能完全工作。如果您使用集合名稱,則無法搜索土耳其字符。在UTF你可以做。但沒有完整的測試,我不想將我的數據轉換爲utf – 2010-04-24 17:16:36

+0

在dbexpress解決方案中,我得到訪問衝突。我試過做跟蹤錯誤。這是因爲數字轉換錯誤。我有像十進制(20,8),雙無符號列。並且我的主鍵列是雙重無符號不爲空auto_increment.i將在我的xp系統中發佈調試跟蹤。 – 2010-04-24 17:20:06

回答

0

我會建議遷移到3D方解決方案,如AnyDAC。 AnyDAC支持以下MySQL功能:

  • 正常和嵌入式服務器。
  • SSL連接。
  • ENUM,SET等數據類型。
  • UTF8等字符編碼。
  • AUTO_INCREMENT列。
  • MySQL 5存儲過程。
  • 帶多個結果集的批處理命令。
  • 查詢執行異常中止。
  • Array DML。
+0

我試過anydac試用版。與anydac獨奏我必須在使用前將我的所有數據轉換爲utf。正如我之前看到的那樣真快。但我更喜歡開源的靈魂。現在我使用delphi 7 + zeos + mysql,除了delphi全部開源。再次感謝 – 2010-04-25 11:40:52