PostgreSQLでマルチバイト文字を含むSQLクエリを実行した際、「符号化方式"UTF8"に対する不正なバイト列です」というエラーが発生する
問題
FireDACのTFDConnectionを使用してPostgreSQLへ接続し、例えば、マルチバイト文字を含む簡単なSQLクエリを実行した場合
FDQuery1.SQL.Text:=’select * from 日本語テーブル’;
FDQuery1.Open;
以下のようなPostgreSQLのネイティブエラーが発生します。
[FireDAC][Phys][PG][libpq]ERROR: 符号化方式"UTF8"に対する不正なバイト列です:0x00
解決
このエラーが解決するには、TFDConnectionのExtendedMetadata=Trueに設定してください。
但し、TFDTableに対して効果はないため、TFDQueryをご利用ください。