ADOQuery и DBNavigator

OK. У меня есть простая база данных, DBGrid и DBNavigator. Я использую этот код для своего adoquery и просматриваю его в своем DBGrid.

выберите Count(*)As 1 , 2 3 из группы Table1 по 1, 2

Проблема в том, что если у меня есть две или более одинаковых статей из 1 и я пытаюсь удалить их из DBnavigator, они присылают мне

Информация о ключевом столбце недостаточна или неверна. Обновление затронуло слишком много строк. Я хочу удалить две или более строк. Не только одну. Как это исправить?


person Georgi Gavrilski    schedule 04.02.2011    source источник


Ответы (1)


Я предполагаю, что будет невозможно использовать DBNavigator обычным способом (без переопределения события кнопки удаления), потому что набор данных содержит более одной записи в строке DBGrid, и ИМХО сетка не заботится о том, есть ли у вас данные в группе . Я бы сказал, если вы выберете какую-то сгруппированную строку и попытаетесь ее удалить, "DBNavigator" проверит, есть ли какой-то первичный (уникальный) ключ для строки, но в данном случае его нет.

Но это всего лишь мое предположение, я не могу его проверить сейчас.

person Community    schedule 04.02.2011
comment
Если это невозможно с помощью dvNavigator, как это сделать? - person Georgi Gavrilski; 04.02.2011
comment
@Georgi - метод Delete из TDataSet предназначен для удаления активной записи, DataSet должен найти уникальную запись для удаления. Создайте запрос с delete from... sql по своему вкусу и откройте его. - person Sertac Akyuz; 04.02.2011