SQL-Server : してログ

PHP->PDO->ODBC で Microsoft SQL Server 2005 に接続する場合、バイナリ型があるとメモリを大量に消費してしまうようです。例えば、問い合わせ結果に image型がある場合、2GBのメモリが要求されます。これは、image型の最大容量に等しいサイズです。試しに、image型を2つ持ったテーブルを select してみたところ、4GBのメモリを要求されました(´・ω・`)

Fatal error: Out of memory (allocated 524288) (tried to allocate 4294967295 bytes) in ...

バイナリデータを SQL 文で格納する必要があったので、ファイルをバイナリリテラルに変換するツールを作成しました。アップロードされたファイルを16進文字列に変換するものです。SQL-Server 用と PostgreSQL 用を作りました。なお、PostgreSQL 用は未チェックですが、たぶん問題無いでしょう。

ファイル加工ツール
http://landhere.info/services/etc/file_tool.php