mysql:5335
From: "TAKAHASHI, Tomohiro" <"TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxx>>
Date: Wed, 10 Apr 2002 23:30:10 +0900
Subject: [mysql 05335] Re: sjis サーバの BLOB 項目に画像を登録 ( たぶん解決)
高橋(智)です。 下記の件ですが、Delphi6のUpdate2を施した環境ではいかがでしょうか? 私が実験してみた限りでは問題は解決されたように思うのですが...。 -- 高橋智宏 Java読書会( http://www.t3-jpn.com/bof/ ) T3-Japan( http://www.t3-jpn.com/ ) 前田 剛 wrote: > > 前田@ワコムアイティと申します。 > 3ヶ月ほど前からMySQLを使い始めました。どうぞよろしくお願いいた > します。 > > MySQL 3.23.47のsjisサーバのBLOB項目に画像を登録しようとしてここ > 数日試行錯誤していましたが、libmysql.dllを修正することによりなん > とかうまく行きました。 > > 過去ログではこの問題への対応方法が見つかりませんでしたので、一 > 応報告しておきます。 > テストした範囲ではうまくいっているようですが、おかしな点があり > ましたらご指摘下さるようお願いいたします。 > > 【開発環境】 > Borland Delphi 6 Professional(UpdatePack 1)のdbExpressを利用。 > > ※dbExpressは、MySQLに接続するためにlibmysql.dllを使用します。 > > 【発生していた問題】 > sjisサーバのBLOB項目に特定のバイトパターンを含む画像を登録しよ > うとすると、データが化けるか登録に失敗してしまう。使用していた > libmysql.dllはsjis対応版。 > > 例: > (元のパターン) 95 5C 27 → (登録される内容) 95 5C 27 ... OK > (元のパターン) 95 27 → (登録される内容) 95 5C 27 ... ??? > > 【原因】 > クライアント側でescape処理したものが、サーバ側ではマルチバイト > 文字として誤認識され、結果としてunescapeされない状態でテーブルが > 登録されてしまう(または登録に失敗する)。 > > うまく説明できませんので、過去ログで[mysql 03156]から始まるスレッ > ドの議論をご覧下さい。 > > http://www.mysql.gr.jp/mysqlml/msg.cgi?ml=mysql&id=3156 > > 【解決方法】 > MySQL 3.23.47のソースを取得し、libmysql.cの > mysql_sub_escape_string関数を以下のように修正してビルドした > libmysql.dllを使用することにより解決しました。 [略]
4955 2002-01-18 01:50 [前田 剛 <maeda@xxxxx] sjis サーバの BLOB 項目に画像を登録 ( たぶん解決) 4956 2002-01-18 02:25 ┣["TAKAHASHI, Tomohiro] 4957 2002-01-18 02:48 ┃┣["TAKAHASHI, Tomohiro] 5002 2002-01-21 21:25 ┃┗[前田 剛 <maeda@xxxxx] 5003 2002-01-21 21:39 ┃ ┗["TAKAHASHI, Tomohiro] -> 5335 2002-04-10 23:30 ┗["TAKAHASHI, Tomohiro]