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

Вниз

что то не получается c sql запросом   Найти похожие ветки 

 
user   (2004-01-05 17:17) [0]

код который выполнятеся по нажатию на клавишу


adoquery.active:=false;
adoquery.sql.clear;
if checkbox1.checked then begin st:=st+"and F5=:FF1.text;
adoquery.parameters.parambyname("FF1").value:=Maskedit1.text;
end;
if checkbox2.checked then begin st:=st+"and F6=:FF6.text;
adoquery.parameters.parambyname("FF2").value:=Maskedit2.text;
end;
adoquery.sql.add(select * from [ИТР$] where st);
у меня ругательство по поводу динамических переменных
как мне быть

приблизительно следующее у меня таблица в Excel поэтому [ИТР$]
но это неважно мне необходимо сформировать динамический запрос
но проблема в том что иногда нет необходимости производить выборку по некоторым полям поэтому я ввел checkbox-ы с Maskedit-ами , если не нажат checkbox то часть кода не нужно вставлять в запрос(значит по соответствующему полю выборка не нужна) допустим первый checkbox1 нажат тогда необходимо включить строчки F5=:FF1.text; где F5 у нас будет это поле цен по которому будет происходить выборка данных. а FF1 - динамисческая переменная
как мне быть так как он у меня ругается по поводу переменных FF1, FF2. - хотя это правильно так как я ввожу переменную а sql запрос еще не производился так как мне решить свою проблему


 
Johnmen ©   (2004-01-05 17:21) [1]

Сначала динамически запрос, а уж потом прописываем параметры :)
И ещё. Что такое .text в параметрах ????


 
JibSkeart ©   (2004-01-05 17:21) [2]

adoquery.sql.add(select * from [ИТР$] where st); ????

да и попробуй в
ShowMessage(Adoquery.SQl.Text) выводить


 
Desdechado ©   (2004-01-05 17:22) [3]

странная конструкция
st:=st+"and F5=:FF1.text;
где закрывающий апостроф? что за text?
если у тебя maskedit известный тип принимает, то и пиши просто
st:=st+"and F5="+Maskedit1.text; // для числа, например


 
JibSkeart ©   (2004-01-05 17:23) [4]

дейсвително ,
сперва запрос потом параметры
допустим так

select * from my_table where my_field > :NUM


 
Desdechado ©   (2004-01-05 17:24) [5]

adoquery.sql.add("select * from [ИТР$] where " + st);


 
Роберт ©   (2004-01-06 11:40) [6]

st:=st+"and F5=:FF1.text;
просто опечатка
st:=st+"and F5=:FF1.text";
вопрос заключается в том чтобы допустим у нас не будет
в sql запросе динамической переменной но мы при этом объявляем динамическубю переменную то вознимает ошибка
adoquery.parameters.parambyname("FF2").value:=Maskedit2.text

использую adoquery, где я не знаю как объявлять типы определенного параметра.
а в query можно легко назначать опеределенный тип
через asstrings


 
Desdechado ©   (2004-01-06 14:35) [7]

В запросе нет динамических переменных. Есть параметры.
Но они появляются автоматически ПОСЛЕ написания текста запроса в SQL.Text (если они в запросе есть). Вот тогда и присваивай значения параметрам.

И лепить в текст запроса имена дельфийских переменных по меньшей мере странно.



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-2098
Opryshok
2004-01-19 15:07
2004.02.02
Easy Parse HTML


14-2358
kdoe
2004-01-10 15:08
2004.02.02
Как добавить программу в автозагрузку виндоса ХР?


1-2201
Юрий Ж.
2004-01-20 21:53
2004.02.02
СВОЙ (!!!) упаковщик


3-1996
Silver_
2004-01-08 11:34
2004.02.02
В DBGrid-е если ADODataSet фильтрированный ScrollBar не работает


3-1978
Innokenty
2004-01-09 03:21
2004.02.02
DB Access и поля Date/Time.