使用vc+odbc来操作ms-sql2000数据库在删除时出问题了CString strSql;
strSql="SELECT * FROM PIC WHERE 名称='"+KeyWord+"'";
if(IsOpen())
Close();
try{
Open(CRecordset::dynamic,strSql);
if(IsBOF()|IsEOF())
{
AfxMessageBox("没有找到要删除的数据");
return 0;
}
Delete();
return 1;
}
catch(CDBException *e)
{
e->ReportError();
e->Delete();
Close();
return 0;
}该代码在继承的CRecordset类中,每当执行到Open函数是,就会抛出“无效的描述符索引”这个错误,数据也无法被删除。
请问这是怎么回事啊?该怎么解决?
strSql="SELECT * FROM PIC WHERE 名称='"+KeyWord+"'";
if(IsOpen())
Close();
try{
Open(CRecordset::dynamic,strSql);
if(IsBOF()|IsEOF())
{
AfxMessageBox("没有找到要删除的数据");
return 0;
}
Delete();
return 1;
}
catch(CDBException *e)
{
e->ReportError();
e->Delete();
Close();
return 0;
}该代码在继承的CRecordset类中,每当执行到Open函数是,就会抛出“无效的描述符索引”这个错误,数据也无法被删除。
请问这是怎么回事啊?该怎么解决?
解决方案 »
- mfc怎么修改受保护的excle的内容
- C++ 转utf-8的URL,需要自己加%么?
- 请教高手几个简单C++问题.
- 请问怎样把两个 int 型数据转换为 lparam 型?
- 请问如何才能快速阅读理解别人的源代码?
- 为什么我从MSDN复制出来的字符都没有回车,以前好像有。这样我就不能从它里面直接复制程序代码了。
- 在线等待。。。。。取得一个应用程序的所有消息
- 求VC使用ImageList导入海量小图片的方法
- 请教,如何解决乱码问题
- 请问在基于对话框的程序中使用序列化(串行化)?
- 控制台程序中如何让两个线程都往屏幕写数据并从屏幕接收数据而不相互影响呢?
- 如何用ADSI提供的LDAP provider修改活动目录里用户的名称?
strSql="SELECT * FROM PIC WHERE 名称='"+KeyWord+"'";
有字段名称是"名称"的么?
KeyWord值是多少?什么类型?
KeyWord 是CString 类的KeyWord的值是外部调用是传进来的
感觉没有什么问题,但不知道为什么就是有错
SELECT * FROM PIC DELETE FROM PIC WHERE 名称='xxx'虽然也能删除数据,但一样会抛出 “无效的描述符索引” 这个错误
有这样用的吗?
其次,strSql="SELECT * FROM PIC WHERE 名称='"+KeyWord+"'";中KeyWord的类型要注意;
最后,把所有"xxx"变成_T("xxx")。
Open(CRecordset::dynaset,strSql);
打开的时候,就能找到数据,但不能进行删除,提示说记录集只读但如果我使用
Open(CRecordset::dynamic,strSql);
打开的时候,,就会出错,提示 无效的描述符索引