Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по ADO и компонентам БД [D7, XP]


WorkWork ©   (2011-09-11 20:57:00) 

Привет всем! нужна помощь! вообщем пишу прогу, которая подключается к базе через ADOConnection, с ним связан ADOQuery. На форме есть ДБ грид и пару ДБ едитов. Вообщем если изменять данные в ДБ эдите, то они не всегда сохраняются, например если я изменил и закрыл прогу, то они не сохранятся, а если я изменю и в гриде пощелкую вверх или вниз, то они сохранятся.

Как сделать так, чтобы они всегда сохранялись?


lesstab   (2011-09-14 13:23:00) [1]

А я пишу в OnDataChange событии DataSource компоненты фильтрацию записей соответствующих таблиц.


Inovet   (2011-09-13 22:44:00) [2]

> [5] WorkWork   (12.09.11 04:35)
> State=dsEdit

Ещё dsInsert надо проверить.


Dennis I. Komarov   (2011-09-13 21:23:00) [3]

Выкинь грид и подумай над интерфейсом...


Евгений07   (2011-09-12 10:40:00) [4]

Dataset->Post сохраняет данные в кэш и не во всех Дельфях физически в базу записывает.
Смотри Рефреш или Репайнт


sniknik   (2011-09-12 09:59:00) [5]

> неполучается.
не в том месте смотришь? State должен показывать правильно.


WorkWork   (2011-09-12 04:35:00) [6]

Вообщем вопрос сводится к тому, как проверить, что набор данных находится в режиме редактирования? Пробывал

if ADOQuery.CanModify then
...
if ADOQuery.State=dsEdit then
...

неполучается.


WorkWork   (2011-09-12 04:20:00) [7]

Привет! у меня еще проблемка! Вообщем структура программы такая-же, плюс:
В 1-м ДБ гриде выделяется какая-то запись и в остальных ДБ компонентах отображаются данные по этой записи, помимо этого есть еще один ДБ грид, в котором отображается таблица по этой-же записи, которая в самой базе хранится в отдельной таблице.

Подскажите как лучше синхронизировать изменения во 2 гриде. Пробую делать ЕДИТ, ПОСТ, но в итоге получаются сплошные лаги. Например если я буду изменять данные во 2 гриде и перейду на другую запись в 1-м гриде, то они не всегда сохранятся. Неужели нет какого-то простого метода?


WorkWork   (2011-09-11 21:39:00) [8]

Спасибо! зделаю Edit, Post.


Dennis I. Komarov   (2011-09-11 21:35:00) [9]

with TDBEditForm.Create(...             do try
 if ShowModal = mrOk then begin
   .....
   Post;
 end;
finally
 Free;
end;


Inovet   (2011-09-11 21:27:00) [10]

В FormClose сделай Dataset->Post


Наверх

Титульная страница Поиск, карта сайта Написать письмо