none
Oracleテーブルへのレコード追加が出来ない。 RRS feed

  • 質問

  • VC++6でODBC経由でOracleのテーブルにレコードを追加するアプリケーションを

    作成しました。

    CRecordsetの派生クラスを使用したのですが、CanappendがFALSEになってしまい

    ます。

    http://support.microsoft.com/kb/135109/ja

    と言うページを見ると、「m_bAppendable」をTRUEにしなければいけないみたい

    ですが、どのタイミングでやればいいのか良く分かりません。

    どうか皆さんのお知恵を貸してください。

    よろしくお願いします。

    2007年2月9日 23:42

回答

  • 自己解決しました。

    CRecordsetクラスを使っていても埒があかないので、CDatabaseクラスで

    「ExecuteSQL」を使ってレコード追加を行なう様にしました。

    CRecordsetクラスを使ってもレコード追加を行なえる方法はあるのでしょうが、

    いつまでもこの問題に関わりあっていられないので、別な解決法を取りました。

    お騒がせしてすみません。

    2007年2月16日 12:45

すべての返信

  • 自己レスです。

    Canappendのチェックを外して、Addnewを実行して見ると、

    「テーブルは読み取り専用です」と言う旨のメッセージボックスが表示されました。

    テーブルが読み取り専用とみなされているので「m_bAppendable」がFALSEになっているよう

    です。(当たり前ですが・・・)

    ホームページでカーソルライブラリを使用しないとテーブルが読み取り専用とみなされてしまうと

    書いてあったので、「CDatabase」クラスの「Open」でカーソルライブラリを使用するオプションを

    指定して実行して見ましたが結果は一緒でした。

    上記の状態で煮詰まっています。

    誰か解決方法をご存知でしたら ご教授願います。

     

     

    2007年2月15日 11:46
  • 自己解決しました。

    CRecordsetクラスを使っていても埒があかないので、CDatabaseクラスで

    「ExecuteSQL」を使ってレコード追加を行なう様にしました。

    CRecordsetクラスを使ってもレコード追加を行なえる方法はあるのでしょうが、

    いつまでもこの問題に関わりあっていられないので、別な解決法を取りました。

    お騒がせしてすみません。

    2007年2月16日 12:45