[前][次][番号順一覧][スレッド一覧]

mysql:14134

From: goungoun <goungoun <gounx2@xxxxxxxxxx>>
Date: Tue, 24 Jul 2007 22:07:11 +0900
Subject: [mysql 14134] Re: MyODBC 接続による 0x5c の問題は最新ドライバで解決済み?

こんにちは。

On Tue, 24 Jul 2007 17:15:48 +0900 (JST)
<ska_king2005@xxxxxxxxxx> wrote:
> 過去ログに、MyODBCで0x5cの文字が存在すると「\」が付加さ
> れ、
> 末尾に存在すると「'」がエスケープされてしまい、
> シンタックスエラー等を引き起こす問題がありました。
> 実際にMyODBC3.51.12を使用し、クエリログを採取した結果、
> 問題となっているクエリが出力されていました。
> 
> なにげなく、MyODBC3.51.17に切り替えて実行した結果、
> クエリログにも0x5c文字がエスケープされずに出力され、
> クエリも問題なく実行できました。

# 見られてるような気もしますが。。。

http://www.mysql.gr.jp/mysqlml/mysql/msg/13924
の頃調べた限りでは、
mysql-connector-odbc-3.51.14-win32.msi
でも正常に動作してました。

# クライアントのmy.cnfで
# default-character-set=cp932
# してますか?
# 詳しくは上記のUrl先やその周辺を探ってみてください。

> 
> チェンジログを一通り読んでみた結果、この辺の修正で直った
> ように
> 見えるのですが、何か情報をお持ちの方はいらっしゃいますで
> しょうか?
> 
> #E.3.13. Changes in Connector/ODBC 3.51.17 (14 July 2007)
> より引用
> #
> #The driver was using mysql_odbc_escape_string(),
> #which does not handle the NO_BACKSLASH_ESCAPES SQL mode. 
> #Now it uses mysql_real_escape_string(), which does.
> (Bug#9498) 
> 

これは、
5.0.3以降でサーバ側に NO_BACKSLASH_ESCAPES というのが追加
されたが、MyODBC側はこれに対応していなかったので修正した
ってことでは?
したがって、cp932の0x5c問題とは無関係だと思いますよ。

ただ、間接的には直ったように見えるような気がします。
というのも、NO_BACKSLASH_ESCAPESは、
エスケープを無効にするオプションのようなので、
結果的に解決しているように見えるのではないかな?

もっとも、NO_BACKSLASH_ESCAPESしていると
副作用(?)として、改行を含む文字列をinsertしようと
"aaa\nbbb" なんて指定しても、期待通りの
動作はしなくなるんでしょうね。


-- 
goungoun <gounx2@xxxxxxxxxx>
http://goungoun.dip.jp/app/


[前][次][番号順一覧][スレッド一覧]

     14132 2007-07-24 17:15 [<ska_king2005@xxxxxx] MyODBC 接続による 0x5c の問題は最新ドライバで解決済み?
     14133 2007-07-24 20:40 ┣[<ska_king2005@xxxxxx]                                       
->   14134 2007-07-24 22:07 ┗[goungoun <gounx2@xxx]                                       
     14135 2007-07-25 10:42  ┗[<ska_king2005@xxxxxx]