Показать сообщение отдельно
Старый 09.01.2012, 19:00   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Rimantas Посмотреть сообщение
есть несовпадение InventSum-а и InventTrans-a . То есть в том смысле , когда програма сделает query в реальном времени , оно хватает данные от InventSum как такие . И вот когда другие делает попрваки , то в тот момент InventTrans пополняеться записями , а InventSum от query - остаеться непоправленным . Вот ето место необновляеться ( например ) :

while ( qr.next() )
{
inventDim = qr.get( tableNum( InventDim ) );
InventSum = qr.get( tableNum( InventSum ) );
... и т.д.
}
Это нормально. Когда вы отправляете запрос на СУБД, последняя готовит вам т.н. ResultSet - слепок с нужными вам данными на основе исходных, удовлетворяющих критериям запроса. Если за время обработки этого результата исходные данные изменились, вы этого не увидите без выполнения подзапросов или повторного выполнения всего запроса.
Цитата:
Сообщение от Rimantas Посмотреть сообщение
Наверно для того , чтобы избежaть такое , надо ещё раз взять переменную inventSum2 . Например - inventSum2 = InventSum::findRecord( inventSum.RecId )
Скорее всего не получится, потому что запросы по InventSum обычно идут с агрегированием, и в результирующей выборке RecId отдельных записей просто нет.