Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];

Вниз

Параметризованные подзапросы в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
8-93155
Natalia
2002-08-09 07:16
2002.11.28
просмотр Gif


3-92825
Aristarh
2002-11-08 11:22
2002.11.28
Можно ли складывать DateTime поля...


6-93160
Grigory Sergeenko
2002-09-30 17:25
2002.11.28
Как запустить file.exe из Delphi!


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


3-92939
voice_inf
2002-11-12 00:49
2002.11.28
Как в поле таблицы типа Graphik поместить изображение Jpg





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский