记录集更新和删除失败(ODBC)

时间:2014-11-03 20:36:26

标签: c++ visual-c++ mfc

我正在使用以下Tutorial来创建一个简单的MFC应用程序,问题是在表中插入新行 应用程序显示错误,说Recordset是只读的。 是否需要设置任何变量来将Recordset更改为写入模式?

void CSampleDBView::OnBnClickedInsert()
{
    CStringW text;
    m_input.GetWindowTextW(text);
    m_pSet->m_student=text;
    m_pSet->AddNew();
    m_pSet->Update();
    AfxMessageBox(text);    
}

这是单击按钮时添加新行的代码。 m_input是一个EditControl,用于接收要插入的文本。

1 个答案:

答案 0 :(得分:0)

检查CRecordset的打开方式。如果你打算更新它,它需要有'CRecordset :: dynaset'或CRecordset :: dynamic'类型。您打开的电话可能有“快照”或其他类型。

发布的代码还有一个问题。对AddNew()的调用需要在赋值行之前进行:

m_pSet->AddNew();
m_pSet->m_student=text;

因为对AddNew()的调用初始化了用于跟踪哪些列已更改数据的标志。