私はFDQuery(FireDac)にいくつかの問題を抱えています。私は本当に間違っていることを得ることができません。以前はDelphi 7 + ZeosMySQLで同じコードを使用していましたが、この問題は発生しませんでした。FireDacでいくつかの「アジア人」のキャラクターを持ってきて...なぜですか?
今、Delphi 10 Seattle + FireDacでは、全く同じコードがいくつかの '中国語'の文字を持っています。ここに私の例を示します(MySQL 4.1以降を使用して)
マイテーブル:
CREATE TABLE `tabdollar` (
`CODIGO` INT(11) NULL DEFAULT NULL,
`DOLLAR` FLOAT(16,2) NOT NULL DEFAULT '0.00',
`EMPRESA_USU` VARCHAR(30) NOT NULL DEFAULT '',
INDEX `CODIGO` (`CODIGO`))
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM;
私はラベルに私に結果を表示するためのボタンで、この単純なコードを書いた:
qryAux.Close;
qryAux.SQL.Clear;
qryAux.SQL.Text := 'show columns from tabdollar';
qryAux.Open;
Label1.Caption := qryAux.FieldByName('Type').AsString;
にこのコードをDelphi 7では、列の型または名前が正しく表示されます。 Delphi 10 Seattleではいくつかの異なる文字を表示しています(おそらく中国語や日本語、私は本当にわかりません)。
これはなぜ起こっているのでしょうか?そこにFireDacのいくつかのプロパティは、文字を正しく取得するクエリですか?
ありがとうございます。
...私はあなたの問題を解決していないが、あなたはUNICODEにデータを変換しようとすることができない場合、私は、MySQL 5.xの上FireDacでXE5を使用していますし、何の問題もなかったしています。 Unicodeの問題である可能性がありますhttp://docwiki.embarcadero.com/RADStudio/XE8/en/Unicode_Support_(FireDAC)サポートはお使いのデルファイのバージョンによって異なります。 – Jaydee
答えJaydeeに感謝します。でも、私はまだ問題はありません。私が言ったように、私はDelphi 10 Seattleバージョン23.0.20618.2753を使用しています。データベースのユニコード(MySQL 4.1)とo.s. (Windows)は同じです。 – SisMaster
データベースで 'latin1_swedish_ci'照合のみを使用している場合は、' CharacterSet = latin1'接続パラメータを使用してください。 – Victoria