sql-server - 找不到用于定位的行?

标签 sql-server delphi sql-server-2005 ado advantage-database-server

我正在使用 D2009、dbGo (ADO) 将现有的 Advantage Database Server 应用程序转换为 SQL Server 2005。有时我会遇到错误 row cannot be found for locating .我用谷歌搜索过,根据结果我需要设置每个 ADOTable 的更新标准属性并将光标位置设置为动态。我这样做了,但有时我仍然遇到同样的错误。所有的表都有主键,所以我一直在使用

Query.Requery(); 
Query.Locate('ID',ID,[]); 

之前更新记录以避免错误,但必须有更好的解决方案。有任何想法吗?还是我应该继续使用 MyDAC 或 Zeoslib?

最佳答案

dbGO/ADO 是访问 MS-SQL 数据库的自然方式。您确定这是确切的错误消息吗?因为我从未听说过,但我听说过“行不能为 位于 更新 ”。

该错误消息表明 ADO 找不到要删除或更新的记录。最常见的原因是表没有定义主键,或者表中至少没有列的内容都是唯一的。

确保在 MS-SQL 表中定义主键。

关于sql-server - 找不到用于定位的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790493/

相关文章:

sql-server - 为什么内部联接会产生索引扫描与索引查找

sql - 计算列无法持久化

delphi - 如何在使用 ScaleBy() 后将 delphi TForm 重置为原始外观

c++ - 如何在 C++ 中表达 Delphi 运算符 "<>"?

sql-server - 如何为多用户应用程序实现简单的锁定机制?

asp.net - IsNULL 和 Coalesce 的正确用法

sql - 在sql中对表进行简单的统计

sql-server - 更改现有表上的聚簇键 - SQL Server 2008

delphi - FireUI 的 TStringGrid - 在绘制时设置值

c# - 为什么我不能使用 LINQ to SQL 将数据更新到数据库中?