TIP: Click on subject to list as thread! ANSI
echo: delphi
to: ALL
from: ZHITOMIRSKY MARK
date: 1997-12-01 21:18:00
subject: D3: Apply Updates 2. TQue21:18:5412/01/97

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)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.