如何在ADO中跳过失败的行
How to skip the failed row in ADO?
我正在使用ADO访问SQL Server数据库。
我定义了记录集打击:
_RecordsetPtr m_pRecordset;
打开表的记录集后,我尝试启动一个循环:
while (!m_pRecordset->ADOEOF)
{
…(do some tasks) …
m_pRecordset->MoveNext();
}
但是,在第44行中,当调用m_pRecordset->MoveNext((时,它将引发一个异常,指示下一行(第45行(中的值无效。然后异常将中止整个循环。如何跳过具有无效值的行并继续使用无效行之后的行?
感谢
由于MoveNext
将抛出异常,您可以从将该调用嵌入try
/catch
块开始。当您捕捉到异常时,您希望忽略该记录并继续下一个记录。这可以通过几种方式来处理。
一种方法是有一个标志来指示你是否有一个有效的行,然后在做所有"做一些任务"之前检查它。
另一种方法是将try
/catch
块放在一个循环中,如果成功读取一行,则中断该循环,如果失败,则保留该循环。这种方式可能很棘手,因为在循环之前还必须检查EOF。
相关文章:
- 如果没有malloc,链表实现将失败
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 视图中的参数推导失败:take_while
- 链接到自行创建的dll失败
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- gcc和c++17的过载解析失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 从父数组测试用例构造二叉树失败
- 如何在ADO中跳过失败的行
- ADO 连接创建实例在 Windows Server 2003 上失败
- ADO 创建参数在尝试从 C++ 写入 Oracle 的 RAW(16) 字段时失败并出现0x800A0D5D
- 如果数据库连接在事务中失败,如何关闭 ADO 连接
- 当我使用 ADO 时,将 varchar 转换为双倍失败,但它在 MS Access 中工作
- ADO命令执行失败