From: "Zhitomirsky Mark"
Один знакомый сказал мне, что это глюк. Я объяснил ему, что это не так и,
что ему следует сделать. Расскажу и для All.
Если два TQuery завязаны по DataSource, и вам вздумалось сделать
ApplyUpdates для TDatabase, то может случится беда: главная запись
сохраниться, а детские - fly-fly... Это связано с тем, что key главной
таблицы сохраняется, вызывая переоткрытие детского TQuery. Процедура эта
невоспитанно-грубая и кэш не сохраняет (естественно). Весь вопрос, как
этого избежать?
1. Если нет внешнего ключа, то запомните сначала детские записи. Если этот
ключ есть, то не выйдет: master key missed (см далее).
Порядок в TDatabase.ApplyUpdates[..] имеет значение, этим и пользуйтесь.
2. Запишите пустую (можно и не пустую, но не мучайтесь) главную запись. В
InsertSQL напишитке update вместо insert. Остальное так же.
Hе забывайте запрещать гулять по мастеру, по пока "дети на свободе".
Самый же умный совет: не связываете TQuery таким образом SQL сервер и сеть
вам этого не простит.
Марк.
--- ifmail v.2.10
---------------
* Origin: unknown (2:5053/16@fidonet)
|