|
![]() |
#1 |
MCITP
|
![]()
Да нет, с queryRun.setCursor действительно работает.. На 3.0 тоже.
__________________
Zhirenkov Vitaly |
|
![]() |
#2 |
MCITP
|
![]()
__________________
Zhirenkov Vitaly |
|
![]() |
#3 |
Участник
|
Ну да, было дело, спрашивал, а вот то что их можно так хитро заджоинить, временную с постоянной через queryRun, я не знал
![]() upd: Врочем так тоже можно, хотя это наверное многие знают. X++: ledgerTableTmp.data(LedgerTable::find("01.030")); ledgerTableTmp.insert(); while select ledgerTableTmp join ledgerTrans where ledgerTrans.AccountNum == ledgerTableTmp.AccountNum { info(ledgerTrans.AccountNum); } return; Последний раз редактировалось Lemming; 14.01.2009 в 16:32. |
|
![]() |
#4 |
Moderator
|
Цитата:
![]() Получается, не у всех... У меня на 3.0, SP4, двухзвенка, Oracle 10g - НЕ РАБОТАЕТ, вылезает унылое декартово произведение. |
|
![]() |
#5 |
Участник
|
Цитата:
X++: while select ledgerTrans join ledgerTableTmp where ledgerTableTmp.AccountNum == ledgerTrans.AccountNum { info(ledgerTransTmp.AccountNum); } return; |
|
![]() |
#6 |
MCITP
|
![]() Цитата:
Сообщение от Lemming
![]() А вот временную с постоянной, когда постоянная идет "вверху" запроса
X++: while select ledgerTrans join ledgerTableTmp where ledgerTableTmp.AccountNum == ledgerTrans.AccountNum { info(ledgerTransTmp.AccountNum); } return; ![]()
__________________
Zhirenkov Vitaly |
|
![]() |
#7 |
MCITP
|
![]() Цитата:
![]() Цитата:
Или что вы тут хотели сказать?
__________________
Zhirenkov Vitaly |
|
![]() |
#8 |
Участник
|
У меня отработало аналогично джобу из оригинального поста. В общем, в любом раскладе, судя по такой неустойчивости к версиям и СУБД, лучше не забавляться с такими связками в реальных проектах.
|
|
![]() |
#9 |
MCITP
|
![]() Цитата:
Ещё прикол: X++: i = 0; while select ledgerTableTmp join ledgerTrans where ledgerTrans.AccountNum == ledgerTableTmp.AccountNum { info('1:' + ledgerTrans.AccountNum); i++; if (transCnt && i == transCnt) break; } i = 0; while select ledgerTrans join ledgerTableTmp where ledgerTrans.AccountNum == ledgerTableTmp.AccountNum { info('2:' + ledgerTrans.AccountNum); i++; if (transCnt && i == transCnt) break; } i = 0; while select ledgerTableTmp join ledgerTrans where ledgerTrans.AccountNum == ledgerTableTmp.AccountNum { info('3:' + ledgerTrans.AccountNum); i++; if (transCnt && i == transCnt) break; } При этом 1 посылает к СУБД запрос (гы ![]() PHP код:
2 - делает нормальное декартово произведение 3 - не выполняется вообще (ни запроса, ни инфо)! (именно после выполнения 2, т.к. 1 - выполняется) 15 мин. голову ломал... бред какой-то...
__________________
Zhirenkov Vitaly |
|
![]() |
#10 |
Участник
|
Опа, точно! Я тоже наткнулся на подобное - вроде только что работало, а тут бамс и перестало. Переключил еще раз компанию, в которой у меня правильные для теста счета были(хотя в ней и был), отработало. Судя по всему, жутко неустойчивая фича.
|
|