パスワードを忘れた? アカウント作成
452012 journal

yunoの日記: GetFieldValue 4

日記 by yuno

DBに接続して値をもらってきたら、なぜか文字が化ける…。
ODBCのメッセージ自体は正常なんだけどなぁ。
文字種ってどっかで設定すんのか?

別のツール自体で読み出すと正常っていうトコがちょっとムカツクわぁ。
しらべなきゃなぁ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • UNICODE周りって大丈夫? それくらいはチェック済みだよね。
    C++だとあんまり関係ないかもしんないけど昔VB(というかVBA)で半角カナ関係が化けまくってタイヘンだった記憶があります。
    参考になればこれ幸い。
    --
    ♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪  yasu0907
    • どもども。わざわざありがとうございます。
      きっとUNICODEなんだろうなーって想像はできるんですけど、どっちがUNICODEなのかわかんないんです。
      ドキュメントを読んでいるとDB,ODBC,MFCのそれぞれがUNICODE対応っていうことみたいなのですけど肝心の確認方法がわからないっていう間抜け状態です(笑)。

      「よきにはからう」ってゆー選択肢が欲しいなー(笑)
      --
      -- yuno
      親コメント
      • 変換関数をかけまくってみるというのわ?(^^;)
        えーと、定かではないのですがRecordsetのプロパティにそのテの情報がないかな? 細かいコーディングやったことないからカンで書いてますが。
         ちなみにVBだと「よきにはからえ」でやると、望んでもいないときまで「よきにはからって」くれてドツボにはまります(苦笑)
        --
        ♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪  yasu0907
        親コメント
        • by yuno (5162) on 2003年02月18日 18時51分 (#261937) 日記
          たびたびサンクスです。
          CDatabaseとCRecordsetをMainFrameの埋め込みオブジェクトでごりごり書いてたんですけど、試しに ClassWizardでMFC ODBC コンシューマのクラスを作らせてみたら、コード中に

          //フィールド/パラメータ データ
          //次の文字列型は (記載されていれば) データベース フィールドの
          //実際のデータ型を反映しています。CStringA は ANSI データ型を、また CStringW は Unicode データ型を
          //反映しています。これは、ODBC ドライバが不必要な変換を行わないようにするためです。これらのメンバを CString 型に変えて、
          //ODBC ドライバが必要な変換をすべて行うようにすることも可能です。
          //(注 : Unicode とこれらの変換の両方をサポートするためには、
          //ODBC ドライバのバージョン 3.5 かそれ以降のものを使う必要があります)

          CStringW m_hogehoge;
              :

          こんなコメントがついたコードが作成されました。
          やっぱODBCが変換してるっぽいですね。

          せっかくだから、このWizardで作らせたこのクラスを使うことにしました。DoFieldExchange()の恩恵も受けれそうですし。

          もちろんこれから書きなおすんです(笑)
          --
          -- yuno
          親コメント
typodupeerror

人生unstable -- あるハッカー

読み込み中...