A5:SQL Mk-2

開発のこと、日々のこと

MYSQLのutf8_bin text項目に対する挙動について

ホーム フォーラム A5:SQL Mk-2掲示板 MYSQLのutf8_bin text項目に対する挙動について

  • このトピックには2件の返信、2人の参加者があり、最後にotoroにより6年、 7ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #855 返信
    otoro
    ゲスト

    こんにちは。不具合のような挙動のご報告をさせていただきます。

    ・使用環境
    A5:SQL Mk-2 64bit edition (Portable mode) Version 2.12.3
    A5:SQL Mk-2 64bit edition (Portable mode) Version 2.13.0 beta 43
    DB:mysqld 10.1.13-MariaDB/InnoDB
    OS:Windows10

    ・関与しそうな設定値
    [データベース接続]->[バイナリ項目の扱い] 指定エンコーディングで文字列化
    [データベース接続]->[バイナリ項目のエンコーディング] UTF-8(Non BOM)/UTF-8

    ・テーブル、データ型設定の例
    CREATE TABLE table1 (
    索引 text COLLATE utf8_bin
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

    ・挙動1
    テーブルを開き、text型の項目に対してフィルタの適用を行おうとすると、次のようなエラーメッセージが表示されます。
    例1) 「索引 = 1」
     Array Byte型から Boolean 型へのバリアント型変換はできません
    例2) 「索引 = ‘1’」
     Array Byte型から Double 型へのバリアント型変換はできません

    ・挙動2
    テーブルを開いた状態で視認可能な行よりも下にあるtext型の項目(索引)を編集しようとしたとき、内容が「(BLOB)」と表示されてしまいます。
    例) 索引のデータが1~99の範囲で順番に並んでいるとして、テーブルを開いたときに30まで見ていた場合
     ・1~30のデータは表示されている通りのテキストで直接編集可能です
     ・31~99のデータを編集しようとすると「(BLOB)」と表示されてしまい直接編集ができません

    #1034 返信
    松原正和
    キーマスター

    otoroさんこんにちは。

    挙動1に関してですが、内部的にはTEXT型は文字列型とは扱われていないため、フィルターで扱うことはできません。制限ということにさせてください。

    挙動2に関してですが、ネットワーク転送が間に合っていないのかなという気がします。申し訳ないのですが修正は難しいかもしれません。

    ご期待に沿えず申し訳ないのですが、よろしくお願いいたします。

    #1053 返信
    otoro
    ゲスト

    こんにちは、ご返信ありがとうございます。

    挙動1について、承知いたしました。

    挙動2の方は、ネットワーク転送絡みとお聞きして??でしたが、色々あるのですね。
    もう少し試してみたところ、初期表示状態から少しでも縦スクロールをした時の編集で全体的に「(BLOB)」になってしまうようです。スクロール位置を初期表示状態に戻すと、同じ項目であってもまた正常に編集できるようになりました。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: MYSQLのutf8_bin text項目に対する挙動について
あなたの情報:




コメントは受け付けていません。