| 
| 
 | Вопрос # 2 927/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!
 Подскажите, что я не так делаю.
 
 Требуется вывести на форму в грид данные из двух связанных таблиц
 (Первая таблица - склады, вторая таблица - Товар и количество на складе. Связаны по коду склада ) .
 Затем должна быть возможность изменить количество и/или место хранения.
 Как я сделал:
 На форму в грид (DevEx tcxGrid) при помощи TADOQuery вывожу все записи из запроса.
 Для изменения данных создана отдельная форма.
 Из нее подключаюсь только к таблице Товар и меняю там количество и/или код склада.
 После закрытия этой формы в главном модуле с гридом делаю ADOQuery.Refresh для обновления текущей строки из запроса.
 
 Что не получается:
 Отображается только изменения произошедшие в той таблице, где менялись значения,
 т.е. новое количество и код склада меняются -  а в полях, связанной таблицы - имя склада остается прежним.
 ADOQuery.Requery помогает, но тогда обновляется весь грид и текущая запись слетает.
 
 Такое впечатление, что из запроса обновляется только изменяемая таблица, а связанная не затрагивается.
 
 Как добиться, чтобы при изменении значения внешнего ключа перезапрашивались данные по связанной таблице?
 
 С уважением, Михаил.
 Приложение:Переключить в обычный режим  SELECT       	Tovar.ID, /* identity */            */	Tovar.Name,  	Tovar.SkladID         SkladName = Sklad.Name FROM Tovar INNER JOIN     Sklad ON Tovar.SkladID = Sklad.id Order by Tovar.Name
|  |   Вопрос задал: Михтяй (статус: Посетитель)Вопрос отправлен: 19 июня 2009, 13:47
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 19 июня 2009, 14:10; участников в обсуждении: 1. 
|   | Вадим К (статус: Академик), 19 июня 2009, 14:10 [#1]:Брать и перезапрашивать. А что бы "текущая запись не слетала", можно просто запомнить её и сделать потом её выделение. Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |