Строка как условие
Модераторы: m0p3e, edward_K, Модераторы
Строка как условие
Есть строковые переменные - strAll, strCMol, strCParty.
Они равны:
strAll:='aSP == SaldoMC.SP and aMC == SaldoMC.cMC and aCurrDate >>= SaldoMC.dSaldo and aPodr == SaldoMC.cPodr'
strCMol:='and aMol == SaldoMC.cMol'
strCParty:='and aParty == SaldoMC.cParty'
Далее, в зависимости от входных данных, из этих переменных формируется одна:
if aMol<>0 then {strAll:=StrAll +' '+ strCMol;}
if aparty<>0 then {strAll:=strAll +' '+ strCParty;}
Как дальше сделать так, чтобы компилятор понял эту строку как условие для Where??:
 
if (GetLast SaldoMC where(( strAll ))=tsOK) { ... }
Или все таки так здесь нельзя и каждый раз (в завис от входных) формировать новое условие??
			
			
									
						
										
						Они равны:
strAll:='aSP == SaldoMC.SP and aMC == SaldoMC.cMC and aCurrDate >>= SaldoMC.dSaldo and aPodr == SaldoMC.cPodr'
strCMol:='and aMol == SaldoMC.cMol'
strCParty:='and aParty == SaldoMC.cParty'
Далее, в зависимости от входных данных, из этих переменных формируется одна:
if aMol<>0 then {strAll:=StrAll +' '+ strCMol;}
if aparty<>0 then {strAll:=strAll +' '+ strCParty;}
Как дальше сделать так, чтобы компилятор понял эту строку как условие для Where??:
if (GetLast SaldoMC where(( strAll ))=tsOK) { ... }
Или все таки так здесь нельзя и каждый раз (в завис от входных) формировать новое условие??
- 
				dp
 - Местный житель
 - Сообщения: 216
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Беларусь, Минск
 - Контактная информация:
 
Re: Строка как условие
такие штуки реализуются через bounds
в подцепке после where (( ))
пишется
Bounds strcmol = aMol == SaldoMC.cMol
Bounds strcparty = aParty == SaldoMC.cParty
;
а потом в нужном месте
if aMol<>0 then {PushBounds(tbstrcmol)}
else {PushBounds(tbstrcparty)}
в конце не забыть снять popbounds('траляля')
			
			
									
						
							в подцепке после where (( ))
пишется
Bounds strcmol = aMol == SaldoMC.cMol
Bounds strcparty = aParty == SaldoMC.cParty
;
а потом в нужном месте
if aMol<>0 then {PushBounds(tbstrcmol)}
else {PushBounds(tbstrcparty)}
в конце не забыть снять popbounds('траляля')
dP
			
						Re: Строка как условие
Точно не помню тему на этом форуме, но там была следующая подсказка:
Select 'Update Basedoc where (( ', Katotg.nrec ,' == ', Basedoc.cOrg, ' ))'
from Katorg where ....
Результат выполнения этого запроса - текст нового запроса.
Попробуй сделать по аналогии, может получится.
			
			
									
						
										
						Select 'Update Basedoc where (( ', Katotg.nrec ,' == ', Basedoc.cOrg, ' ))'
from Katorg where ....
Результат выполнения этого запроса - текст нового запроса.
Попробуй сделать по аналогии, может получится.
Re: Строка как условие
Все это будет возможно верным, но мне кажется...мне кажется даже то, что я предложил (предположил) упрется в ключи. Вот как бы их мне избежать, через временные таблицы в памяти или как то по другому??
			
			
									
						
										
						- 
				dp
 - Местный житель
 - Сообщения: 216
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Беларусь, Минск
 - Контактная информация:
 
Re: Строка как условие
если начало выборки по индексу, то можно смело в конце написать (noindex) и будет счастье (т.е. оттормаживать сильно не будет).
			
			
									
						
							dP
			
						Re: Строка как условие
при NoIndex будут негарантированы результаты. Да и скорость важна...
			
			
									
						
										
						- 
				dp
 - Местный житель
 - Сообщения: 216
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Беларусь, Минск
 - Контактная информация:
 
Re: Строка как условие
> при NoIndex будут негарантированы результаты
вот это не понял - как это не гарантированы? ???
			
			
									
						
							вот это не понял - как это не гарантированы? ???
dP
			
						Re: Строка как условие
Осталось такое чувство....)))
			
			
									
						
										
						- 
				Maverick
 - Абориген
 - Сообщения: 943
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: External Developer
 - Контактная информация:
 
Re: Строка как условие
noindex - это всего лишь директива компилеру шоб не ругался... а в остальном сия подцепка будет работать как фильтр в индексном выражении.. а филтьтры, заюзанные как доп условия в индексе не всегда ведут себя ккорректно...
			
			
									
						
										
						Re: Строка как условие
Вот от этого чувство и осталось. И что делать, как избавиться от некорректности?
			
			
									
						
										
						