- ベストアンサー
全角文字が???になる
コマンドプロンプトからクエリを発行したときは問題なく表示されるんですが、ASPからだと全角文字が???になってしまいます。 また、NULL項目を除外したいので Where DeleteFlg is Null という条件を付加したんですが、 今度は何も表示されなくなります。 原因等、わかるかたがいましたら、お力をお貸しください。 Set db=Server.CreateObject("ADODB.Connection") db.Open "dsn=AIU;Server=172.17.0.110; Database=db1; UID=root; PWD=admin;" db.CursorLocation = 3 Set rs = db.Execute("Select * From table1") Do While Not(rs.EOF) Response.Write rs.Fields.Item("koumoku1") & vbNewLine Loop 環境 Windows2003Serverエンタープライズ MySQL5.0 MySQL ODBC 3.51 Driver IE6.0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
関連するか分かりませんが、 SQL文の構文は、大文字小文字をごちゃまぜに するのではなく、統一されてはいかがでしょうか。 Where DeleteFlg is Null という部分、 is Null ではなく、is null でどうでしょうか。 is Null だと、is 'Null' とご認識されて出てこない のかなという気もします。
その他の回答 (2)
- naochancom
- ベストアンサー率61% (41/67)
#1の回答者です。 全角は良かったです。。自分も前になったことがあったので・・・・ DeleteFlg ですが、タブが入っているのではないでしょうか? DeleteFlg='\t' でコマンドプロンプトで検索してみてください。 それか、中に入っている内容を見られてもよろしいかと思います。 select distinct DeleteFlg from table1 その結果にあわせて、条件をセットしてはいかがでしょうか?
- naochancom
- ベストアンサー率61% (41/67)
接続の際にcharacter setを指定してみては いかがでしょうか? ODBCで接続を行っていると思いますが、 ODBC3.51.12では、Connect Optionsタブに Initial Statement項目があります。そこに set character set sjis <--sjisの場合 など、キャラセットを指定して接続をしてみてください。 >NULL項目を除外したいので >Where DeleteFlg is Null と有りますが、除外する(Nullデータを表示させない)なら DeleteFlg is not Null ではないでしょうか? 確認してもらえればと思います。。
補足
>set character set sjis 全角文字の文字化けは直りました。 >NULL項目を除外したいので >Where DeleteFlg is Null は誤りでした。 正しくは、 NULLのものだけを表示させるです。 is NULL だけでなく = '' とか = ' ' などもためしたのですが、 やはり表示されません。 (コマンドプロンプトもASPも同様) Accessではうまくいったのですが、扱いが違うんでしょうか。 ※データをインサートするときはタブ区切りのCSVから行いました。
補足
タブもスペース(半角・全角)も入っていませんでした。 らちが明かないので、 DeleteFlg <> '1' で対応しようとしたらこれもだめで、 DeleteFlg <> 1 でやっとOKになりました。 文字列なのになぜ数値扱いされているのかはわかりませんが。。