CRecordset::Edit()について


Mic  2004-08-20 20:51:16  No: 54255  IP: [192.*.*.*]

開発環境:VC++.NET
DB:Access2000

今、DBの更新で迷っています。
すみませんが、ヒントを頂けたら幸いです。

CDatabase::OpenExでデータソースとの接続を確立して、
CRecordset::Open(CRecordset::dynaset,sql,CRecordset::none)で
レコードの選択をしました。

その後にCRecordset::CanUpdate()で更新可能な事を確認して
CRecordset::Edit();を呼ぶとエラーが発生してしまいます。

エラー箇所は、dbcore.cppのEdit()のASSERT(m_nFields != 0)部分です。

なぜ、ASSERT(m_nFields != 0)で落ちてしまうのか?を
教えていただきたく。

宜しくお願い致します。

編集    削除
シャノン  2004-08-20 22:28:43  No: 54256  IP: [192.*.*.*]

m_nFields が 0 だから、としか言いようが無いと思います。
なぜ 0 なのかは、貴方の書いたコードを見ないと。

編集    削除
mic  2004-08-20 23:11:38  No: 54257  IP: [192.*.*.*]

ありがとうございます。

m_nFieldsというのはどっかで設定するのですか?

編集    削除
mic  2004-08-20 23:11:40  No: 54258  IP: [192.*.*.*]

ありがとうございます。

m_nFieldsというのはどっかで設定するのですか?

編集    削除
シャノン  2004-08-22 00:32:31  No: 54259  IP: [192.*.*.*]

いや、CRecordSet の使い方は、正直言ってわかりません。
が、ASSERT が出るってことは、どこかで不正な操作をしたってことです。
あるいは、必要な操作がされていないか。

m_nFields は MSDN にドキュメントとして載っていますので、設定する局面もあるんでしょうが、どこで設定するのかはわかりませんし、他の操作によって設定されるのかもしれません。
どなたかフォローお願いします>識者の方

編集    削除