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

Вниз

Параметры в Query.   Найти похожие ветки 

 
Hawk2   (2002-09-27 15:08) [0]

Мастера поведайте, как работать с параметрами в Query, а то у меня чего-то свойство Params в design-time не работает. Появляется окно добавления параметров, а там все не активизировано.


 
ch_victor ©   (2002-09-27 15:15) [1]

в запросе должны использоваться параметры
например
select pole1,pole2 from table
where pole1=:param1 and pole2=:param2

после этого у тебя появятся параметры
и можно будет их видеть в disign-time

параметры указываются с двоеточием впереди


 
Hawk2   (2002-09-27 15:30) [2]

Ну написал я запрос, а почему мне выбрасывает окно "Query1:Perameters ":Nom" not found" или "Поле "Nom" неопределенного типа"?


 
Max Zyuzin ©   (2002-09-27 15:45) [3]

А текст запроса можно посмотреть?


 
sunwheel ©   (2002-09-27 16:16) [4]

Попробуй присвоить параметру значение:

Query1.ParamByName("Nom").AsInteger := 0;


 
ch_victor ©   (2002-09-27 16:17) [5]

тип параметра нужно выбрать
ptInput если ты хочешь его передавать в запрос


 
Hawk2   (2002-09-27 16:19) [6]

Можно: SELECT * FROM SomeTable WHERE (Nomer=:Nom) OR (Fio=:Fio)


 
sniknik ©   (2002-09-27 16:32) [7]

design-time? не работает.
то есть пытаешся выполнить поставив свойство Active в true.
а больше ничего не делаеш? Для десигна надо их в десигне и присвоить. щелкни на Params и проставь значения.


 
ch_victor ©   (2002-09-27 16:39) [8]

вот кстати
почему если указываешь параметры в секции order by
и меняешь c помощью параметра сортировку

то это не работает, что в сортировке нельзя использовать параметры?


 
Hawk2   (2002-09-27 16:40) [9]

В том то и дело что "щелкни на Params и проставь значения.", а там все неактивно.


 
sniknik ©   (2002-09-27 16:43) [10]

а там свойство такое рядом ParamCheck похоже оно у тебя false.


 
sniknik ©   (2002-09-27 16:45) [11]

сначала сделай его true а после запрос с параметрами набери. если его позже менять не сработает.


 
Prooksius ©   (2002-09-27 16:51) [12]

Используй FIBPlus - у них есть такая штука, как макросы. Классная вещь. Я их как раз в Order By и использую.


 
Hawk2   (2002-09-27 17:04) [13]

Пробовал уже и так, но тут прикол, первый раз запрос выполняется без проблем, а потом ругается "Query1:Field "Nom" is of an anknown type."

procedure TForm1.Button2Click(Sender: TObject);
begin
Query1.Params.CreateParam(ftInteger,"Nom",ptInput);
Query1.ParamByName("Nom").AsInteger := StrToInt(Edit1.Text);
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT * FROM Proba22 WHERE (Nomer=:Nom)");
Open;
end;
end;


 
sniknik ©   (2002-09-27 17:11) [14]

ты же говорил
"Params в design-time не работает"
а это рантфйм. изза этого все и путаются.

надо
SQL.Clear;
SQL.Add("SELECT * FROM Proba22 WHERE (Nomer=:Nom)");
SQL.Params.ParamByName("Nom").AsInteger:= 9;
Open;

чтото вроде этого.


 
sniknik ©   (2002-09-27 17:14) [15]

вот эта строка
SQL.Add("SELECT * FROM Proba22 WHERE (Nomer=:Nom)");
все настройки переопределяет. параметры надо после определять.


 
Hawk2   (2002-09-27 18:28) [16]

Урра!!! ПОЛУЧИЛОСЬ!!!
TO sniknik: ОГРОМНОЕ СПАСИБО!!!
а то я раньше писал "SELECT * FROM SomeTable WHERE Nomer="+StrToInt(Edit1.Text)+" "... и в том же духе но хочется както цивилизовано.


 
sniknik ©   (2002-09-27 19:06) [17]

а что в этой нецивилизованного?
эта запись тоже нормальняя, не считая того что ты тут ошибся :-) как и я ранее, но смысл правильный. а с параметрами я обычно делаю когда их много или когда дату передаю, в запросе ее писать обязательно ошибешся.



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

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

Наверх




Память: 0.5 MB
Время: 0.019 c
14-68988
Igor_thief
2002-09-29 15:17
2002.10.21
ListView


1-68747
arcad
2002-10-11 10:49
2002.10.21
Обработка сообщений


1-68749
nick_vstu
2002-10-11 14:10
2002.10.21
День недели...


7-69039
alexsandri
2002-08-11 12:27
2002.10.21
как ограничить разрешение на запуск программ


14-68956
Zion
2002-09-26 09:48
2002.10.21
О вирусописательстве и трояностороительстве на этом форуме.