![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
почему не работает запрос вида в FB ? [D6]
Yurij-7 © (2007-07-09 21:13:00)Вечер добрый, подскажите пжл, почему не работает запрос вида в FB ?
IBQuery1.Close;
IBQuery1.SQL.Clear;
iBQuery1.SQL.Text := 'select * from spr_manager where ldap_manager like :manager';
IBQuery1.ParamByName(':manager').AsString:= Edit1.Text;
IBQuery1.Open;
status_user := ibQuery1.FieldByName('status_manager').asstring;
IBQuery1.Close;
panel1.Caption := status_user;
иными словами параметр просто не передается ((( причем на дбф файлах парметры рулят отлично
Yurij-7 (2007-07-10 21:57:00) [1]ну это я взял с примера, так у меня работало на дбф файлах, а вылечил свою проблему так
iBQuery1.SQL.Text := 'select * from spr_manager where ldap_manager = :manager'
Огромное всем спасибо за помощь, самое большое спасибо Desdechado
Desdechado (2007-07-10 21:51:00) [2]Теперь расскажи, зачемтебе LIKE, да еще и с %, если имя юзера известно точно?
Yurij-7 (2007-07-10 21:42:00) [3]сделал вот так, и ничего не работает (((
u := 'cs290983gjn';
showmessage (u);
IBQuery1.Close;
IBQuery1.SQL.Clear;
iBQuery1.SQL.Text := 'select * from spr_manager where ldap_manager like '%'||:manager||'%'';
IBQuery1.ParamByName('manager').AsString:= u ;
showmessage (iBQuery1.SQL.Text);
IBQuery1.Open;
status_user := ibQuery1.FieldByName('status_manager').asstring;
IBQuery1.Close;
panel1.Caption := status_user;
Johnmen (2007-07-10 21:24:00) [4]
> Yurij-7 (10.07.07 21:03) [12]
[4] + [6] разве не работает?
Yurij-7 (2007-07-10 21:03:00) [5]Огрмное спасибо за коментарии, но до сих пор не могу ничего сделать с запросом, в кратце опишу тему, есть форма аутентификации, там я регистрируюсь через ЛДАП сервер, в моей базе есть табличка куда внесены ЛДАПы и им проставлен статус (пользователь, админ, руководитель) вот при событии OnCreate формы пытаюсь сделать выборку статуса для логина что бы потом в зависимости от значения отрисовать главное меню с определенным набором кнопок. Но, на делфях ранее работал с дбф файлами, а вот уже созел постепенно переходить на чтото серверное, выбрал жарптицу типа очень хорошого и небольшого (по требованиям) сервака. но тут на тебе с первого клика как говорицца сразу на грабли наступил, вот и не могу разобраться (((((
To Johnmen © (10.07.07 10:59) [7]
Параметры замечательно работают. При правильном употреблении...
Если можно то подскажите где почитать или подскажите как правильно создать этот запрос.
Спасибо.
DrPass (2007-07-10 15:09:00) [6]
> AZIZE © (10.07.07 15:03) [9]
> Напиши так
> 'select * from spr_manager where ldap_manager like'+chr(39)+Edit1.
> Text+chr(39);
> и забей на парааметры а еще лучше
Тут тебя самого еще учить и учить, а ты уже других пытаешься...
Плохиш (2007-07-10 15:05:00) [7]
> AZIZE © (10.07.07 15:03) [9]
Теперь введи в Edit1.Text текст "Д'Артаньян"
AZIZE (2007-07-10 15:03:00) [8]Напиши так
'select * from spr_manager where ldap_manager like'+chr(39)+Edit1.Text+chr(39);
и забей на парааметры а еще лучше
iBQuery1.SQL.Text :='select * from spr_manager'
iBQuery1.Filter:='ldap_manager like'+chr(39)+Edit1.Text+chr(39);
iBQuery1.Filtered:=True;
Desdechado (2007-07-10 11:02:00) [9]Параметрические запросы механизмом своим одинаковы что для FB, что для dBase, что для Oracle.
Слепка текста на лету - плохоерешение.
Ищи ошибку в другом месте. Проверь в отладчике, погляди напараметры транзакций, посмотри, нет ли каких-либо обработчиков событий, которые могут перебивать запрос и т.п.
Johnmen (2007-07-10 10:59:00) [10]Параметры замечательно работают. При правильном употреблении...
ЮЮ (2007-07-10 10:56:00) [11]> 'select * from spr_manager where ldap_manager like :manager'
а '%' располагаются в Edite-е?
не могу понять в чем причина, може в FB както по другому параметрические запросы строятся ?
Очень даже может быть. Я не больщой спец в IB, но где-то мелькал такой синтаксис:
select * from spr_manager where ldap_manager like '%'||:manager||'%'
т.е. '%' находятся в запросе, а параметром передается чистое значение подстроки
З.Ы. ldap_manager - какого типа?
Yurij-7 (2007-07-10 10:38:00) [12]вчера разбирался с этим параметрическим запросом но он так и не работает, получается значение надо передавать только подготовкой строки SQL а потом пихать в кверик ?
Yurij-7 (2007-07-09 21:52:00) [13]в этой сторке правильно так
IBQuery1.ParamByName('manager').AsString:= Edit1.Text;
Yurij-7 (2007-07-09 21:51:00) [14]передаю вместо эдита с переменной, на "" (кавычки ) вообще ругается, типа некоректный символ, а на апострофы не реагирует
IBQuery1.ParamByName('manager').AsString:= '+u+' ;
делаю вот так с дбф файлом
Query1.ParamByName('typ_client').AsString:= typ_client;
работает отлично
не могу понять в чем причина, може в FB както по другому параметрические запросы строятся ?
я просто с жарптицей только начинаю работать ....
Desdechado (2007-07-09 21:47:00) [15]При обращении к параметру не нужно указывать двоеточие.
Johnmen © (09.07.07 21:36) [1]
Не мудри...
Johnmen (2007-07-09 21:36:00) [16]...:= ''''+Edit1.Text+'''';