MySQL サーバーに関する質問(FireDAC)
FAQ(FireDAC) への移動
このトピックでは、MySQL Server に関係する質問と回答の一覧を扱います。
Q1: MySQL C API 関数の mysql_thread_id を FireDAC から使用する方法はありますか。
A: はい、少しわかりにくいですが、以下のような方法があります。
- FDConnection1.ConnectionIntf.Driver.CliObj - TMySQLLib の参照を返します。
- FDConnection1.ConnectionIntf.CliObj - TMySQLSession の参照を返します。そこに MySQL プロパティが含まれています。
- これらをまとめると、次のようになります。
uses
FireDAC.Phys.MySQLCli, FireDAC.Phys.MySQLWrapper;
...
with FDConnection1.ConnectionIntf do
TMySQLLib(Driver.CliObj).mysql_thread_id(TMySQLSession(CliObj).MySQL);
Q2: MySQL で BLOB フィールドを 512 KB を超えるデータで更新すると、"MySQL server has gone away" エラーが発生します。
A: http://dev.mysql.com/doc/refman/5.0/en/gone-away.html を参照してください。そこでは、max_allowed_packet の値を増やすように勧めています。
Q3: MySQL サーバーへの SSL 接続を確立することは可能ですか。
A: はい、可能です。 「MySQL サーバーへの接続」の「セキュアな接続の使用」を参照してください。
Q4: アプリケーションが終了時に数秒間ハングするのはなぜですか。 MySQL 接続しか使用していません。
A: アプリケーションでスレッドを生成している場合は、libmysql.dll バージョン 5.x でこの問題が発生するおそれがあります。 詳細については、http://bugs.mysql.com/bug.php?id=37226 を参照してください。 回避策としては、アプリケーションを終了する前にすべてのスレッドを終了してみてください。