漢字フィールドを含むSQL文のsql整形

  1. 漢字フィールドを含むSQL文を選択してsql整形を実行すると漢字フィールドが化けます。
    dllを持ってきた元のsqlfmt1.12のsqlfmt.exeでは変換結果は化けませんので、mEditor側の問題ではないかと思うのですが。

     |  H.I.  |  返信
  2. ご報告ありがとうございます。
    ほんとですね、漢字のフィールド名では試したことがなくて気づきませんでした。
    なんとかしてみます!

     |  Kuro  |  返信
  3. > ご報告ありがとうございます。
    > ほんとですね、漢字のフィールド名では試したことがなくて気づきませんでした。
    > なんとかしてみます!

    えっと、0.30を試してみて、単純な例ではうまくいったように見えたのですが、いくつか問題があるようです。長くなりそうなので自宅に帰ってからまたここに書き込みます。

     |  H.I.  |  返信
  4. > えっと、0.30を試してみて、単純な例ではうまくいったように見えたのですが、いくつか問題があるようです。長くなりそうなので自宅に帰ってからまたここに書き込みます。

    うは、テスト不足ですね、、、すみませんでした。。。
    私の思いつく限りのSQLではフツーに動いてるっぽかったもので・・・(言い訳)

    お手数をお掛けしますが、どうかよろしくお願いしますね!

     |  Kuro  |  返信
  5. > > えっと、0.30を試してみて、単純な例ではうまくいったように見えたのですが、いくつか問題があるようです。長くなりそうなので自宅に帰ってからまたここに書き込みます。

    では書きます。

    まず、いくつかの漢字を含むSQL文を整形しようとすると、「整形できませんでした」というダイアログが表示され、整形できません。
    最初は長いSQL文がだめなのかと思ったんですが、調べるとある種の漢字文字列を含むSQL文がフォーマットできません。
    文字によってできるものもありますが、たとえば以下のようなSQLがだめです。

    SELECT '当' FROM A;

    だめな字は他に’意’やひらがながありました。(網羅的な調査はしていませんがかなりの割合であるようです)

    次に、うまく整形ができたとき、英字の大文字であったものがすべて(文字列以外)小文字になってしまいます。
    ASCIIだけならOracleなどでは大文字小文字は区別しませんが、全角の"A"とかも"a"になってしまいます。

    今気がついている問題点は上記の2つです。

    後、質問ですが、SQL整形機能などは0.3.0からサポートが始まった(ですよね?)プラグインで実装するのは難しいのでしょうか?

     |  H.I.  |  返信
  6. こんばんは、いろいろ検証いただきありがとうございます。
    大変参考になりました。

    > SELECT '当' FROM A;
    確かに、、、原因はわかりましたが対応をどうすれば良いかと悩んでいたところ興味深いサイトがありまして少し光が見えてきました。うまくいけば次バージョンで修正できると思います。

    > 次に、うまく整形ができたとき、英字の大文字であったものがすべて(文字列以外)小文字になってしまいます。
    > ASCIIだけならOracleなどでは大文字小文字は区別しませんが、全角の"A"とかも"a"になってしまいます。

    すみません、これは不具合ではなく、あえてそうしてますw
    完全に個人的な仕様なのですが、予約語は大文字、フィールド名は小文字っていう規約が世の中的に割りと多いかなと思いましてそのように変換するようにしています・・・。本来はある程度自由に設定できれば良いのですが、、、そ、そのうちw

    > 後、質問ですが、SQL整形機能などは0.3.0からサポートが始まった(ですよね?)プラグインで実装するのは難しいのでしょうか?

    そうですね、、、sqlfmt.dllに頼ると限界が見えてきますので独自で実装できれば最高なのですけど、実はSQLあんまり詳しくないのと整形系のプログラムを組む技術力が無いという悲しい現実があります。。。どこかにソースでも転がっていれば助かるのですけどねw

    同じ理由により、XML整形も日本語と半角文字を混ぜて使うとバグるかもしれないので注意してください。。。きっと、次は対応させてみせます。

     |  Kuro  |  返信
  7. 紆余曲折ございましたが、なんとか実現できました。
    ついでにオプション画面に予約語や項目の大文字・小文字・無変換などの設定項目も追加しときます。

    次バージョン(土日)で対応予定。

    ・・・って、次バージョン早すぎかっ!?

    参考サイト
    http://cult-drang.com/program/tips/unicode/unicode_urlenc.html
    (無償・完全自由でソース使用の許可をくださったドラン様に感謝)

     |  Kuro  |  返信
  8. 最初のフォローを見てmEditorのSQL整形はしばらく様子見かな、とおもってましたが、

    > 紆余曲折ございましたが、なんとか実現できました。
    > ついでにオプション画面に予約語や項目の大文字・小文字・無変換などの設定項目も追加しときます。
    > 次バージョン(土日)で対応予定。

    ありがとうございます。期待してます。

    > ・・・って、次バージョン早すぎかっ!?

    自分にとっては全然問題ありません:->

     |  H.I.  |  返信
  9. > 最初のフォローを見てmEditorのSQL整形はしばらく様子見かな、とおもってましたが、
    >
    > > 紆余曲折ございましたが、なんとか実現できました。
    > > ついでにオプション画面に予約語や項目の大文字・小文字・無変換などの設定項目も追加しときます。
    > > 次バージョン(土日)で対応予定。
    >
    > ありがとうございます。期待してます。
    >
    > > ・・・って、次バージョン早すぎかっ!?
    >
    > 自分にとっては全然問題ありません:->

     |  H.I.  |  返信
  10. すみません。
    単に「修正確認しました。」って書こうとして失敗しました。
    ありがとうございました。

    > > > 紆余曲折ございましたが、なんとか実現できました。
    > > > ついでにオプション画面に予約語や項目の大文字・小文字・無変換などの設定項目も追加しときます。

     |  H.I.  |  返信
  11. > すみません。
    > 単に「修正確認しました。」って書こうとして失敗しました。
    > ありがとうございました。

    ご確認ありがとうございます!
    ふぅ、直ってて良かった・・・w

     |  Kuro  |  返信
スポンサーリンク