Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.08.2012, 11:02
antigen antigen вне форума
Прохожий
 
Регистрация: 07.08.2012
Сообщения: 6
Репутация: 10
По умолчанию Сохранение в БД

Вношу данные в базу данных сохраняю, но при вызове dbgrid сохраненные данные не отображаются до перезагрузки программы, как это исправить подскажите?
Ответить с цитированием
  #2  
Старый 07.08.2012, 11:10
Аватар Аватар вне форума
Прохожий
 
Регистрация: 16.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Скорее всего DataSet, на который грид нацелен дективировать и повторно активировать. А лучше код покажите, как обновляете и как грид привязан к DataSet
Ответить с цитированием
  #3  
Старый 07.08.2012, 11:10
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

после добавления всех данных "обновить" запрос к которому "привязан" DBGrid.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 07.08.2012, 11:22
antigen antigen вне форума
Прохожий
 
Регистрация: 07.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

сохранение
Код:
  adoquery1.Insert;
  adoquery1.FieldByName('fam').AsString:=edit1.Text;
  adoquery1.Active:=true;
  adoquery1.Post;
   adoquery1.ExecSQL;

открытие
Код:
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from kl' );
adoquery1.Active:=true;
dbgrid1.Visible:=true;
а как обновлять ?

Последний раз редактировалось lmikle, 08.08.2012 в 19:08.
Ответить с цитированием
  #5  
Старый 07.08.2012, 12:02
Аватар Аватар вне форума
Прохожий
 
Регистрация: 16.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
а как обновлять ?
Сделать adoquery1.Active:=False; и по-новой выполнить блок 'открытие'. Сохранение выполнено по ... не буду говорить как. Сделайте в другом AdoQuery и с использованием SQL-команды INSERT INTO ...
Ответить с цитированием
  #6  
Старый 08.08.2012, 11:40
sorockinalex sorockinalex вне форума
Начинающий
 
Регистрация: 08.08.2012
Сообщения: 178
Репутация: 10
По умолчанию

Ребята, помогите, напишу кратко.
Делаю запрос на изменение записи в таблице, на форме только Query:
Код:
        Query.SQL.Clear;
        Query.SQL.Add('UPDATE HeadOffices SET HeadOffices.HeadOffice="'+HeadOfficeEdit.Text+'" WHERE HeadOffices.Key='+inttostr(HeadOfficeKey));
        Query.ExecSQL;
далее закрываю форму и выполняю две процедуры главной формы, в которых идёт обновление StringGrid
Код:
  AddHeadOfficeForm.Close;
  AddOrgForm.HeadOfficeNameEdit.Text:=HeadOfficeEdit.Text;
  AddOrgForm.HeadOfficeFilter;
  AddOrgForm.FillHeadOfficesStringGrid;

А теперь сам вопрос: Обнаружил, что обновление таблицы происходит не сразу... Как отследить в данном случае событие обновления таблицы, и уже после этого обновлять StringGrid?
На текущий Query ни одно событие не работает, ни AfterEdit, ни другие... (((
Ответить с цитированием
  #7  
Старый 08.08.2012, 11:57
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от sorockinalex
А теперь сам вопрос: Обнаружил, что обновление таблицы происходит не сразу... Как отследить в данном случае событие обновления таблицы, и уже после этого обновлять StringGrid?
На текущий Query ни одно событие не работает, ни AfterEdit, ни другие... (((
Два Query никак не связаны между собой. Если один Query делает 'UPDATE', то другой Query не получит никаких событий об этом, даже если он 'отображает', туже таблицу.
Ответить с цитированием
  #8  
Старый 08.08.2012, 12:24
sorockinalex sorockinalex вне форума
Начинающий
 
Регистрация: 08.08.2012
Сообщения: 178
Репутация: 10
По умолчанию

Спасибо! Понял! ТОлько как сделать Query на главной форме глобальным?
Ответить с цитированием
  #9  
Старый 08.08.2012, 12:47
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от sorockinalex
Спасибо! Понял! ТОлько как сделать Query на главной форме глобальным?
Что значит глобальным? Если тебе нужно иметь доступ к этому Query из другого модуля (формы), то просто в этом другом модуле пропиши в uses имя главного модуля.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter