Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление запроса после добавления записи, FireBird+FIBPlus 
V
    Опции темы
former
Дата 20.5.2009, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Есть связка master-detail вида:

Таблица Countries

CountryID,
CountryName

Таблица Companies

CompanyID,
CountryID,
CompanyName

После добавления записи в таблицу Countries, не используя
Код

CountryDataSet.Active:=false;
CountryDataSet.Active:=true;

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

Возникает вопрос. Каким образом получить значение CountryID добавленной записи без обновления всего запроса?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Экскалупатор
Дата 20.5.2009, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



Цитата

Возникает вопрос. Каким образом получить значение CountryID добавленной записи без обновления всего запроса? 


что то не совсем понял, что вы имеете в виду, но почему нельзя сначала получить CountryID, а затем добавить его в запись Companies?
По моему если у вас таблица Companies зависит от Country, то вполне логично сначала узнать к какой стране относиться компания, а потом заносить ее(компанию) в базу.
PM MAIL ICQ   Вверх
Akella
Дата 20.5.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(former @  20.5.2009,  00:50 Найти цитируемый пост)
Возникает вопрос. Каким образом получить значение CountryID добавленной записи без обновления всего запроса? 

1. Фибы отлично с этим справляются.
2. Почитай в документации. Раздел Master-detail.
3. А примеров разве нет?

Добавлено через 1 минуту и 51 секунду
Если не разберёшься, сделаю пример. smile 
PM MAIL   Вверх
former
Дата 20.5.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(Akella @  20.5.2009,  10:20 Найти цитируемый пост)
1. Фибы отлично с этим справляются.
2. Почитай в документации. Раздел Master-detail.
3. А примеров разве нет?

Делал все по документации.

Наверно я плохо объяснил. 
1. Добавляем запись в таблицу Countries через CountryDataSet (AutoCommit:=true, poRefreshAfterPost:=true). 
2. Добавленная запись появляется в Grid-е (EhLib).
3. В CompanyDataSet (dcForceOpen:=true, dcWaitEndMasterScroll:=true) и соответствующем Grid-е происходит обновление.
4. При попытке добавить в таблицу Country запись и записать в поле CountryID данные из CountryDataSet, текущей записи, появляется сообщение об ошибке (значение внешнего ключа равно 0).

При выполнении 
Код

CountryDataSet.Active:=false;
CountryDataSet.Active:=true;

ошибка (п. 4) не возникает.

Это сообщение отредактировал(а) former - 20.5.2009, 15:18


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 20.5.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(former @  20.5.2009,  15:02 Найти цитируемый пост)
Наверно я плохо объяснил. 

Сейчас не лучше. Откуда нам знать о связях твоих таблиц?
Сделай небольшой тестовый пример и выложи сюда, если не сложно.

Добавлено через 7 минут и 53 секунды
former, ты про MAS_ID прочитал? Ты заполнил свойства autoupdate?
PM MAIL   Вверх
former
Дата 20.5.2009, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(Akella @  20.5.2009,  17:17 Найти цитируемый пост)
ты про MAS_ID прочитал?

Читал, читал. Master-detail настроена по мануалу.

Цитата(Akella @  20.5.2009,  17:17 Найти цитируемый пост)
Ты заполнил свойства autoupdate?

А вот здесь, Akella, тыпопал в самую точку.  smile  Параметры autoupdate не были настроены.  smile smile 

Akella, +1 (правда, только завтра - форум не дает).

P.S. Никак не найду время полностью изучить мануал по Fib-ам. Буду исправляться. smile 

Это сообщение отредактировал(а) former - 20.5.2009, 18:33


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 20.5.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



На сайте devrace.com есть примеры, если не найдёшь, то могу скинуть.
PM MAIL   Вверх
former
Дата 20.5.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Akella, они у меня есть. Спасибо!



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0875 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.