使用ado时,记录集的m_rst->AddNew()总是出错,到底是什么回事呢???


使用ado时,记录集的m_rst->AddNew()总是出错,到底是什么回事呢???

11 个解决方案

#1


代码贴出来看看

#2


要看代码

#3


void CADOTest_FromVCKDlg::OnAdditem()
{
_variant_t vUsername,vBirthday,vID,vOld;
bool isb=UpdateData();

if(m_username!="")
{
if(m_username.GetLength()>0)
{
m_rst->AddNew();
m_CurrentSel=m_userlist.InsertItem(0xffff,"");

vUsername=(_variant_t)m_username;
vID=(long)m_userid;
vOld=(long)m_userold;
vBirthday=(_variant_t)m_userbirthday;

m_rst->PutCollect("id",vID);
m_rst->PutCollect("username",vUsername);
m_rst->PutCollect("old",vOld);
m_rst->PutCollect("birthday",vBirthday);

m_userlist.SetItem(m_CurrentSel,0,LVIF_TEXT,(_bstr_t)vID,NULL,0,0,0);
m_userlist.SetItem(m_CurrentSel,1,LVIF_TEXT,(_bstr_t)vUsername,NULL,0,0,0);
m_userlist.SetItem(m_CurrentSel,2,LVIF_TEXT,(_bstr_t)vOld,NULL,0,0,0);
m_userlist.SetItem(m_CurrentSel,3,LVIF_TEXT,(_bstr_t)vBirthday,NULL,0,0,0);
}
}
else
{
MessageBox("没有输入,用户名!");
}
}

#4


m_rst->update()

#5


不对,在m_rst->AddNew();处,就出错了。

#6


m_rst的打开方式?

那就是前面的代码有错,

#7


你打开记录集是用的adLockType 参数用的是什么??

#8


你该用TRY{} CATCH(){}
那样比较容易查错

#9


如果用默认的方式打开ADO那就应该可以,你可以用open() canappend()addnew() update()close()样的顺序操作ADO,还可以使用Query()来查寻ADO结果

#10


他报什么错误,拿出来看一下

#11


1,可能数据库的打开模式是只读的
2,打开记录集的时候, SQL 语句不合适

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号