2010-11-22 1 views
0

Здравствуйте мне нужно ур помощь для Удаление номера строк в DBGrid первая моя база данных доступа и ошибка удаления является «недостаточной ключевой информации conlumn для обновления или refreshin»Удалить Групповое строки в DBGrid

и ADOQuery связанные с DBGrid является:

ВЫБОР tblMessages *, tblMessages.Direction, tblContacts.Name оТ tblMessages LEFT JOIN tblContacts ПО tblMessages.MobileNumber = tblContacts.MobileNum ГДЕ (((tblMessages.Direction) = 1))

.

и meth od delting: adoquery1.delete;

ответ

1

Это не связано с dbGrid, это ваш набор данных (adoQuery1), который выполняет действие. dbGrid просто визуализирует ваши записи набора данных.

Убедитесь, что все ваши таблицы имеют поля первичного ключа. Я думаю, вы также должны включить первичные ключи обеих объединенных таблиц в оператор SELECT.

В Microsoft ADO есть известная ошибка, и я не уверен, исправлена ​​ли она в последней версии или нет; то есть:

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

Он говорит, если первичный ключ одной таблицы имеет такое же имя, как одно из полей в другой таблице, и столы соединяются между собой, то вы можете получить, что "Недостаточно информации о столбцах для обновления или обновления. "Ошибка.

BTW, В вашей инструкции SELECT у вас уже есть tblMessages. *, Почему вы включаете tblMessages.Directions тоже?

+0

дорогая, эта ошибка не происходила при соединении, которая появляется при удалении методом adoqurey1.delete; – micheal

+0

Я знаю, что это происходит при удалении записи. Когда вы удаляете запись, оператор DELETE должен найти запись в наборе записей. Очевидно, что у него недостаточно информации о записи, которая должна быть удалена. Я сказал вам, что ADO имеет ошибку, которая вызывает это, и эта ошибка возникает при удалении записи. Поэтому вы должны проверить, что я упомянул в своем ответе. – vcldeveloper

 Смежные вопросы

  • Нет связанных вопросов^_^