2010-11-22 69 views
0

你好,我需要UR用于删除一个DBGrid中的行数帮助 第一我的数据库访问和删除的错误是“不够的关键conlumn用于更新或refreshin”删除一个DBGrid的多选行

和用的DBGrid相关adoquery是:

SELECT tblMessages *,tblMessages.Direction,tblContacts.Name FROM tblMessages LEFT JOIN tblContacts ON tblMessages.MobileNumber = tblContacts.MobileNum WHERE(((tblMessages.Direction)= 1))

and meth删除的是:adoquery1.delete;

回答

1

这与dbGrid无关,它是执行操作的数据集(adoQuery1)。 dbGrid只是可视化你的数据集记录。

确保您的所有表都具有主键字段。我想你也应该在SELECT语句中包含两个连接表的主键。

Microsoft ADO中存在一个已知的错误,我不确定它是否在最新版本中修复;那就是:

BUG: Problem Updating ADO Hierarchical Recordset When Join Tables Share Same Column Name

它说,如果一个表的主键具有相同的名称作为其他表中的字段中的一个,和表连接在一起,那么你可能会说:“关键列信息不足以更新或刷新。“”错误。

顺便说一句,在你的SELECT语句中,你已经有了tblMessages。*,你为什么还要包含tblMessages.Directions?

+0

亲爱的,通过adoqurey1.delete方法删除加入的那个apear时,这个错误并没有发生; – micheal 2010-11-22 13:40:34

+0

我知道它在删除记录时发生。当您删除记录时,DELETE语句必须在记录集中找到记录。显然它没有足够的关于应该被删除的记录的信息。我告诉过你,ADO有一个导致这个问题的错误,并且在删除记录时发生错误。所以你应该检查我在答案中提到的内容。 – vcldeveloper 2010-11-22 13:44:30