Главная страница
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.047 c
3-1967
Романов Р.В.
2004-01-09 12:01
2004.02.02
Выбор структуры БД


3-1976
Talla2k
2004-01-09 03:06
2004.02.02
Oracle//создание НД


14-2368
Rauf
2004-01-13 01:59
2004.02.02
Есть ли в Дельфи оптимизация кода?


3-1946
SergP
2004-01-09 16:10
2004.02.02
Можно ли сделать такой запрос?


1-2208
DmitryA
2004-01-20 17:12
2004.02.02
ScrollBar в ComboBox