none
CRecordSet Openにて「引数が正しくありません」のメッセージボックスが表示 RRS feed

  • 質問

  • CRecordSet Openにて、以下の実行を行った場合「引数が正しくありません」とのメッセージボックスが表示されることがあります。

     try {
      m_RegressionTableDB->Open (0, NULL, 0);
     }
     catch  (CDBException *e) {
      strTemp += e->m_strError;
      LogPrint (strTemp, LOG_EXEC);

      e->Delete();
      nRet = -2;
      return;
     }

    デバックにて追跡したところ、「dpcore.cpp」内の「CRecordset::Open(UINT nOpenType, LPCTSTR lpszSQL, DWORD dwOptions)」内の

     ENSURE_ARG(nOpenType == AFX_DB_USE_DEFAULT_TYPE ||
      nOpenType == dynaset || nOpenType == snapshot ||
      nOpenType == forwardOnly || nOpenType == dynamic);

    で、発生していることが判明しました。

    原因がわかりません。回避方法をお教えください。

    2020年6月11日 1:39

すべての返信

  • にゃぬにょさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    テーブルインスタンスではなくデータベース全体に接続しましたか。

    ご説明によると、CRecordSet :: Openを呼び出すときに誤ったインデックス値を設定するようです。

    この関数の呼び出し方法について詳しく教えていただけますでしょうか。 
    または、データベースに存在する場合は、使用するインデックス値を確認してください。

    このリンクをご参照いただければと思います。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年6月15日 8:57
    モデレータ