Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2012, 08:23   #1
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию Как обновить DataSet?

Привет всем!
Ситуация следующая. Есть форма 1, на которой лежит FIBDataSet, настроенный на Table1 в БД и DBGrid, на форме 2, есть тоже FIBDataSet и тоже настроенный на Table1. После добавления или изменения записи через датасет на форме 2, мне необходимо чтобы изменения были видны на форме 1. Как это сделать? FIBDataSet.Refresh, не помогает и для чего нужен этот Refresh, вообще, если толку от него нет?
Вариант типа:
Код:
FIBDataSet.Active:=false;
FIBDataSet.Active:=true;
не подходит, есть ли какой-то другой способ?
Заранее спасибо!
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 13.10.2012, 09:28   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
FIBDataSet1.Close;
FIBDataSet1.RefreshSQL.Text:=FIBDataSet1.SelectSQL.Text;
FIBDataSet.Open;
// и для обновления юзаем рефреш
FIBDataSet1.Refresh;
// или
FIBDataSet1.ReOpen;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 13.10.2012, 10:30   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Уточню. что RefreshSQL обычно используют не ко всему набору, а только к измененным записям, что-то типа

Код:
select ..... where id= :old_id
чтобы не перегружать весь датасет
_SERGEYX_ вне форума Ответить с цитированием
Старый 13.10.2012, 12:43   #4
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

А что делать если запись добавлена? Т.е. не изменена, а добавлена новая и надо чтобы она появилась и на форме 1.
И еще раз повторюсь, рефрешь не помогает. У меня RefreshSQL прописан в инспекторе объектов. А когда я программа выполняет код типа FIBDataSet.Refresh абсолютно ничего не происходит.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 13.10.2012, 13:35   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

делай ReOpen; (ReOpenWP[]
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 13.10.2012, 17:39   #6
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
делай ReOpen; (ReOpenWP[]
Хорошо, тогда другой вопрос. Какие параметры нужно указывать в скобках после ReOpenWP?
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 13.10.2012, 19:21   #7
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

эм давайте разберемся, вы добавляете запись так?:
Код:
FIBDataSet1.Insert;
FIBDataSet1.post;
FIBDataSet1.close;
FIBDataSet1.open;
В FIBDataSet1 в свойстве InsertSQL записан оператор insert into table?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 13.10.2012, 20:49   #8
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Я добавляю запись так:

Код:
fibdataset1.append;
fibdataset1['поле1']:='asdfasd';
....
fibdataset1.post;
В свойстве InsertSQL да, записано так: insert into имя_таблицы
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 13.10.2012, 22:37   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

1. добавляем по FIBDataSet1.Insert;
2. сохраняем по FIBDataSet1.Post;
3.
Цитата:
Какие параметры нужно указывать в скобках после ReOpenWP?
если параметров для открытия нету - оставляем пустым
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 13.10.2012, 22:42   #10
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Yurk@, не у меня добавляется именно по append.
А пустыми скобки оставлять нельзя, ругается.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавить сохранить и обновить dataset (C#) arthur1 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 28.03.2012 22:41
Строку из одного DataSet в другой DataSet Abbath1349 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 22.05.2011 19:26
Как рабоать с классом DataSet Droid Общие вопросы .NET 2 18.01.2011 09:24
Из DataSet работающего по циклу в DataSet maroder22 БД в Delphi 1 05.09.2010 23:22
Как обновить?? Vremya-Dengy Общие вопросы Delphi 6 17.02.2009 22:44