ddt.demos.su!f400.n5020!f121.n461!useua!f121.n461!f700.n461!f79.n461!f11.n461!
not-for-mail
████ OS/2 Hi, All!
■ Mon Dec 01 1997, 21:18
■ Zhitomirsky Mark wrote All
■ on subject: D3: Apply Updates for 2 linked TQuery
Ghrmmrm! This Zhtomirsky Mark wrote russian, so... I will help him, I hope my
translation will be correct.
I think, his letter you see as a number of strange symbols. The reason is in
using russian 866 codepage. And russian language. It is not international, I
think. ;)
ZM> Один знакомый сказал мне, что это глюк. Я объяснил ему, что это не
ZM> так
ZM> и, что ему следует сделать. Расскажу и для All. Если два TQuery
ZM> завязаны по DataSource, и вам вздумалось сделать ApplyUpdates для
ZM> TDatabase, то может случится беда: главная запись сохраниться, а
ZM> детские - fly-fly... Это связано с тем, что key главной таблицы
ZM> сохраняется, вызывая переоткрытие детского TQuery. Процедура
ZM> эта невоспитанно-грубая и кэш не сохраняет (естественно). Весь вопрос,
ZM> как
ZM> этого избежать?
ZM> 1. Если нет внешнего ключа, то запомните сначала детские записи. Если
ZM> этот ключ есть, то не выйдет: master key missed (см далее). Порядок в
ZM> TDatabase.ApplyUpdates[..] имеет значение, этим и пользуйтесь. 2.
ZM> Запишите пустую (можно и не пустую, но не мучайтесь) главную запись. В
ZM> InsertSQL напишитке update вместо insert. Остальное так же.
ZM> Hе забывайте запрещать гулять по мастеру, по пока "дети на свободе".
ZM> Самый же умный совет: не связываете TQuery таким образом SQL сервер и
ZM> сеть вам этого не простит.
Well... Lets begin:
"
One my friend said, that it is a bug. I said him, that it is not truth, adn
showed him, how to do it. I will say how to All. If two TQuerys linked by
DataSource, and you want to apply ApplyUpdates for TDatabase, you can find
next
trouble: main record will be saved, and childs - fly-fly... Because the key
f
main saves, calling reopen of childs TQuery. This procedure is not saving
cache
( of course ). All question is "How to pass this trouble?".
1. If you haven't an external key, remember first child records. If you have
this key, it will not work: master key missed (look down). Count in
TDatabase.ApplyUpdates[..] have sence, use it.
2. Write empty main record ( you may do it not empty, but for what? ) In
InsertSQL write update, but not insert. And so on.
Do not forget to restrict "walking" throw the wizard, while "childs on fresh
air ;) ( My fix, YR) ". Most clever idea: do not link by this method, SQL
server
and net do not like it ;) "
WHoohh... 2ZM: it is an international echo, so write next letters english! Hi
from Ukraine ;)~~!
P.S. Sorry for my "warp" english, I don't know it very good, I'm only 16
years.
Yurii Rashkovskii, e-mail: rashkovskii@ilt.kharkov.ua, 27:10/2@IMLnet
WWW: http://www.geocities.com/SiliconValley/Way/9657
--- [ IS MicroLife Creative Group ]
---------------
* Origin: Deep Depression (2:461/11)
|