Строка как условие

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
zanuda
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49

Строка как условие

Сообщение zanuda »

Есть строковые переменные - 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) { ... }

Или все таки так здесь нельзя и каждый раз (в завис от входных) формировать новое условие??
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Re: Строка как условие

Сообщение dp »

такие штуки реализуются через bounds

в подцепке после where (( ))
пишется
Bounds strcmol = aMol == SaldoMC.cMol
Bounds strcparty = aParty == SaldoMC.cParty
;

а потом в нужном месте

if aMol<>0 then {PushBounds(tbstrcmol)}
else {PushBounds(tbstrcparty)}

в конце не забыть снять popbounds('траляля')
dP
Savich
Постоянный гость
Сообщения: 52
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь

Re: Строка как условие

Сообщение Savich »

Точно не помню тему на этом форуме, но там была следующая подсказка:
Select 'Update Basedoc where (( ', Katotg.nrec ,' == ', Basedoc.cOrg, ' ))'
from Katorg where ....

Результат выполнения этого запроса - текст нового запроса.

Попробуй сделать по аналогии, может получится.
zanuda
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49

Re: Строка как условие

Сообщение zanuda »

Все это будет возможно верным, но мне кажется...мне кажется даже то, что я предложил (предположил) упрется в ключи. Вот как бы их мне избежать, через временные таблицы в памяти или как то по другому??
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Re: Строка как условие

Сообщение dp »

если начало выборки по индексу, то можно смело в конце написать (noindex) и будет счастье (т.е. оттормаживать сильно не будет).
dP
zanuda
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49

Re: Строка как условие

Сообщение zanuda »

при NoIndex будут негарантированы результаты. Да и скорость важна...
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Re: Строка как условие

Сообщение dp »

> при NoIndex будут негарантированы результаты

вот это не понял - как это не гарантированы? ???
dP
zanuda
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49

Re: Строка как условие

Сообщение zanuda »

Осталось такое чувство....)))
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Строка как условие

Сообщение Maverick »

noindex - это всего лишь директива компилеру шоб не ругался... а в остальном сия подцепка будет работать как фильтр в индексном выражении.. а филтьтры, заюзанные как доп условия в индексе не всегда ведут себя ккорректно...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
zanuda
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49

Re: Строка как условие

Сообщение zanuda »

Вот от этого чувство и осталось. И что делать, как избавиться от некорректности?
Ответить