Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.28;
Скачать: CL | DM;

Вниз

Параметризованные подзапросы в ADOquery   Найти похожие ветки 

 
Picco   (2002-11-11 10:48) [0]

Извините за беспокойство вопрос ADOQuery и параметризованным подзапросам .
Select distinct Towar_code from FACT_TABLE where towar_code in (select towar_code from SPR_TOW where company_code=:company_code) and dat>:dat

В дизайн -тайм работают, а в реал-тайм выскакивает что не установлены свойства параметров для параметризованных подзапросов.Программая установка свойств (типов) параметров не помогает.Установка свойств Prepared и paramcheck также не помогает.

Поможите пожалуйста


 
stone ©   (2002-11-11 10:54) [1]

Попробуй избавиться от подзапроса:
Select distinct Towar_code from FACT_TABLE f
inner join SPR_TOW s on f.towar_code = s.towar_code
where s.company_code=:company_code and f.dat>:dat




 
KSergey ©   (2002-11-11 10:56) [2]

А значения-то параметрам присваиваете в run-time?
Ну и еще при разработке попробуйте явно прописать типы параметров.
А запрос в таком виде уст. на этапе разработки или присваивается при выполнении программы?


 
ЮЮ ©   (2002-11-11 11:01) [3]

Или, если работаешь под Win2000 перейти на ODBC provider. У меня так сказать, native provider под Win95 обрабатывал мудрёные запросы, а под 2000 ругался


 
sniknik ©   (2002-11-11 11:16) [4]

ЮЮ © (11.11.02 11:01)
у меня все с точностью до наоборот. под 95 вообще не пробовал, 98,2000,NT нормально в XP были проблемы (уже не помню какие, может и не базой связанные)

Picco (11.11.02 10:48)
покажите как вызываете (код что до .Execute/Open)


 
Picco   (2002-11-11 12:12) [5]

with SQLwork do
begin
ParamCheck:=true;
if active then active:=false;
SQL.Clear;
SQL.add("Select distinct Towar_code from FACT_TABLE where towar_code in (select towar_code from SPR_TOW where company_code=:company_code) and dat>:dat
");
Parameters.ParseSQL(SQL[0],True);
Parameters[0].value:=vendor_id;
Parameters[1].value:=now-90;
Prepared:=true;
ConnectionString:=CString;
active:=true;
First;
end;


 
sniknik ©   (2002-11-11 13:29) [6]

ParamCheck:=true; //он у тебя меняется? установи в десигн тайм раз и навсегда
ConnectionString:=CString; //по моему лутше пользоватся свойством Connection вместо этого
ADOConnection.ConnectionString:=CString; //тоже один раз гденибудь при инициализации
и
SQLwork.Connection:= ADOConnection;
все конекты лутше заранее, можно и после но не после присвоения запроса а до.

попробуй так может и заработает
ADOConnection.Close;
ADOConnection.ConnectionString:=CString;
with SQLwork do begin
//if active then active:=false; в этом случае лишнее закрытие коннекта закроет все привязанные обьекты
Connection:= ADOConnection; //убери если не меняется
ParamCheck:=true; //убери если не меняется
SQL.Clear;
SQL.add("Select distinct Towar_code from FACT_TABLE where towar_code in (select towar_code from SPR_TOW where company_code=:company_code) and dat>:dat
");
Parameters[0].DataType:= ftInteger; //в общем тоже лишнее но по мне лутше явно указывать
Parameters[0].value:=vendor_id;
Parameters[1].DataType:= ftDateTime; //up
Parameters[1].value:=now-90;
active:=true;
end;



 
KSergey ©   (2002-11-12 10:28) [7]

В дополнение к > sniknik © (11.11.02 13:29)

Напрасно убрана строка Paramters.Parse(). Раз запрос динамический и с параметрами - пренепременнейше нужна.
Хотя я бы записал ее так (а то фиг его знает как оно там по строкам разнесено).

...
SQL.add(..);
Parameters.ParseSQL( SQL.Text,True);
...

А про парядок занадия ConnectionString да и про само отсутствие необходимости этого - это, пожалуй, верно замечено.


 
Picco   (2002-11-12 11:17) [8]

Верно в том случае если работаешь с приложением а если
нужно запустить несколько потоков в данном конкретном случае для расчета заказов поставщикам (их запускают несколько по разным компаниям сразу) лучше не работать через общее соединение


 
sniknik ©   (2002-11-12 11:19) [9]

для каждого потока свое, иначе глюки.



Страницы: 1 вся ветка

Текущий архив: 2002.11.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-92850
Fixxxer
2002-11-12 19:51
2002.11.28
Файл *.dba


1-93082
BOBBY
2002-11-16 16:12
2002.11.28
процедуры без класса tform


1-92971
Южанин
2002-11-15 14:25
2002.11.28
не работает стандартная функция LeftStr() и RightStr()


6-93169
mpa2000
2002-10-02 18:59
2002.11.28
Помогите разобраться со свойствами WebBrowser-а


7-93265
alf_
2002-09-28 04:19
2002.11.28
Работа с мышкой