CRecordSet.AddNewおしえて! – プログラミング – Home

通知
すべてクリア

[解決済] CRecordSet.AddNewおしえて!


masa
 masa
(@masa)
ゲスト
結合: 25年前
投稿: 12
Topic starter  

CRecordSetを使ってDB(SQL SV7.0)の更新をしたいのですが
mSet.AddNew();のところ「でテーブルは読み取り専用です」となってしまいます
なにが悪いのかわかりません

長初心者(週2~3時間しか勉強できていない!)なのでよろしくお願いします
関係のありそうなソース抜粋してみました

----------------------------------------------------------------------------------------------
class CSSMMNMTNSet : public CRecordset
{
public:
CSSMMNMTNSet(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CSSMMNMTNSet)

// フィールド/パラメータ データ
//{{AFX_FIELD(CSSMMNMTNSet, CRecordset)
int m_COP_ID;
int m_PAGE_NO;
CString m_ITEM_KB;
int m_MENU_NO;
CString m_TITLE;
CString m_RUN_PATH;
int m_RUN_OPT;
//}}AFX_FIELD

// オーバーライド
// ClassWizard は仮想関数のオーバーライドを生成します
//{{AFX_VIRTUAL(CSSMMNMTNSet)
public:
virtual CString GetDefaultConnect(); // デフォルト の接続文字列
virtual CString GetDefaultSQL(); // Recordset の デフォルト SQL
virtual void DoFieldExchange(CFieldExchange* pFX); // RFX のサポート
//}}AFX_VIRTUAL

// インプリメンテーション
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

};

--------------------------------------------------------------------------------
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
UpdateData(TRUE);
CSSMMNMTNDoc* pDoc = GetDocument();
CSSMMNMTNSet mSet(&pDoc->m_database);

mSet.m_strFilter.Format(COP_ID = %d and PAGE_NO = %d and MENU_NO = %d,
m_COP_ID, m_PAGE_NO, m_MENU_NO);
if(mSet.Open(CRecordset::snapshot, NULL, CRecordset::optimizeBulkAdd)) {
if(!mSet.IsEOF()) {
//既存データ  有りの場合
mSet.Edit();
if (mSet.CanUpdate()) {
mSet.Update();
}
}
else{
//既存データ  なしの場合
mSet.AddNew();
if (mSet.CanUpdate()) {
mSet.Update();
}
}
}
mSet.Close();

-------------------------------------------------------------------------------------------


引用未解決
トピックタグ
Johnny
 Johnny
(@Johnny)
ゲスト
結合: 25年前
投稿: 12
 

if(mSet.Open(CRecordset::snapshot, NULL, CRecordset::optimizeBulkAdd)) {

CRecordset::snapshot は読み取り専用です、OpenのHELPを調べて下さい。


返信引用
masa
 masa
(@masa)
ゲスト
結合: 25年前
投稿: 64
 

Johnny さんありがとうございました 
この件については解決しました
別のエラーがでたので解決出そうに無いとき、また掲載したいのでよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました