Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проблема с добавлением записей


Автор: makavelithad 26.12.2009, 13:04
Поискал по форуму, но решение моей проблемы не нашёл.
Использую ADOQuery и Access, когда я добавляю новую запись и после этого делаю фильтрацию, она больше не отображается. Для добавление использую процедуру Adoquery.append и adoqury.post соответственно. Кто может помогите

Автор: chip_and_dayl 26.12.2009, 13:33
Я так понял у тебя выводятся те данные, которые ты ввел в самом Access?

Добавлено через 51 секунду
А если через программу, то после фильтрации и перезапуска программы их нету?

Автор: ~FoX~ 26.12.2009, 13:37
Код

procedure TDobav.Button1Click(Sender: TObject);
    begin
      form1.adoquery1.FieldByName('Info_bank').AsString := bank.text;
      form1.adoquery1.Post;
      form1.Adoquery1.First;
      dobav.Close;
    end;


Код

procedure TForm1.N7Click(Sender: TObject);
begin
Adoquery1.Append;
Adoquery1.First;
dobav.showmodal;
end;

Автор: chip_and_dayl 26.12.2009, 13:42
~FoX~
Тогда запись будет редактироваться.

А вообще там проблема в целостности базы. Когда данные добавляются, то она нарушается. И собственно, когда грузится программа идет объединение, и данные которые не имеют ссылочную  целостность не попадают в результат

Автор: Данкинг 26.12.2009, 16:02
Цитата(makavelithad @  26.12.2009,  13:04 Найти цитируемый пост)
Использую ADOQuery и Access, когда я добавляю новую запись и после этого делаю фильтрацию, она больше не отображается

Видимо, надо датасет переоткрывать.

Автор: chip_and_dayl 26.12.2009, 17:48
Данкинг
У него фильтрация (если это так можно назвать) через тот же AdoQuery:) В этом же запросе идет объединение данных, но как их объединить если внешние ключи пустые

Автор: makavelithad 26.12.2009, 20:34
Цитата

А если через программу, то после фильтрации и перезапуска программы их нету? 

Нет, не бывает ничего.
Цитата

Видимо, надо датасет переоткрывать. 

Как это организовать?
Цитата

А вообще там проблема в целостности базы. Когда данные добавляются, то она нарушается. И собственно, когда грузится программа идет объединение, и данные которые не имеют ссылочную  целостность не попадают в результат

А как сделать, чтобы добавляемые данные тоже имели целостность?

Автор: makavelithad 26.12.2009, 23:34
Я со всем разобрался, только теперь у меня не хочет запись удалять

Автор: ТоляМБА 8.1.2010, 21:13
makavelithad, скорее всего в таблице удаляется запись с первичным ключом совпадающим с внешним ключом из связанной таблицы и нет каскадного удаления связанных записей.
Решения:
Включить "каскадное удаление связанных записей" на связи данной таблицы.
или
Перед удалением записи проверять наличие в связанных таблицах значений внешних ключей совпадающих со значением первичного ключа удаляемой записи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)