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

Вниз

почему не работает запрос вида в FB ?   Найти похожие ветки 

 
Yurij-7   (2007-07-09 21:13) [0]

Вечер добрый, подскажите пжл, почему не работает запрос вида в 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;

иными словами параметр просто не передается ((( причем на дбф файлах парметры рулят отлично


 
Johnmen ©   (2007-07-09 21:36) [1]

...:= """"+Edit1.Text+"""";


 
Desdechado ©   (2007-07-09 21:47) [2]

При обращении к параметру не нужно указывать двоеточие.

Johnmen ©   (09.07.07 21:36) [1]
Не мудри...


 
Yurij-7   (2007-07-09 21:51) [3]

передаю вместо эдита с переменной, на "" (кавычки ) вообще ругается, типа некоректный символ, а на апострофы не реагирует
IBQuery1.ParamByName("manager").AsString:= "+u+" ;

делаю вот так с дбф файлом
Query1.ParamByName("typ_client").AsString:= typ_client;

работает отлично

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


 
Yurij-7   (2007-07-09 21:52) [4]

в этой сторке правильно так
IBQuery1.ParamByName("manager").AsString:= Edit1.Text;


 
Yurij-7   (2007-07-10 10:38) [5]

вчера разбирался с этим параметрическим запросом но он так и не работает, получается значение надо передавать только подготовкой строки SQL а потом пихать в кверик ?


 
ЮЮ ©   (2007-07-10 10:56) [6]

> "select * from spr_manager where ldap_manager like :manager"
а "%" располагаются в Edite-е?

не могу понять в чем причина, може в FB както по другому параметрические запросы строятся ?


Очень даже может быть. Я не больщой спец в IB, но где-то мелькал такой синтаксис:
select * from spr_manager where ldap_manager like "%"||:manager||"%"
т.е. "%" находятся в запросе, а параметром передается чистое значение подстроки

З.Ы. ldap_manager - какого типа?


 
Johnmen ©   (2007-07-10 10:59) [7]

Параметры замечательно работают. При правильном употреблении...


 
Desdechado ©   (2007-07-10 11:02) [8]

Параметрические запросы механизмом своим одинаковы что для FB, что для dBase, что для Oracle.
Слепка текста на лету - плохое решение.
Ищи ошибку в другом месте. Проверь в отладчике, погляди напараметры транзакций, посмотри, нет ли каких-либо обработчиков событий, которые могут перебивать запрос и т.п.


 
AZIZE ©   (2007-07-10 15:03) [9]

Напиши так
"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;


 
Плохиш ©   (2007-07-10 15:05) [10]


> AZIZE ©   (10.07.07 15:03) [9]

Теперь введи в Edit1.Text текст "Д"Артаньян"


 
DrPass ©   (2007-07-10 15:09) [11]


> AZIZE ©   (10.07.07 15:03) [9]
> Напиши так
> "select * from spr_manager where ldap_manager like"+chr(39)+Edit1.
> Text+chr(39);
> и забей на парааметры а еще лучше

Тут тебя самого еще учить и учить, а ты уже других пытаешься...


 
Yurij-7   (2007-07-10 21:03) [12]

Огрмное спасибо за коментарии, но до сих пор не могу ничего сделать с запросом, в кратце опишу тему, есть форма аутентификации, там я регистрируюсь через ЛДАП сервер, в моей базе есть табличка куда внесены ЛДАПы и им проставлен статус (пользователь, админ, руководитель) вот при событии OnCreate формы пытаюсь сделать выборку статуса для логина что бы потом в зависимости от значения отрисовать главное меню с определенным набором кнопок. Но, на делфях ранее работал с дбф файлами, а вот уже созел постепенно переходить на чтото серверное, выбрал жарптицу типа очень хорошого и небольшого (по требованиям)  сервака. но тут на тебе с первого клика как говорицца сразу на грабли наступил, вот и не могу разобраться (((((

To Johnmen ©   (10.07.07 10:59) [7]
Параметры замечательно работают. При правильном употреблении...

Если можно то подскажите  где почитать или подскажите как правильно создать этот запрос.

Спасибо.


 
Johnmen ©   (2007-07-10 21:24) [13]


> Yurij-7   (10.07.07 21:03) [12]

[4] + [6] разве не работает?


 
Yurij-7   (2007-07-10 21:42) [14]

сделал вот так, и ничего не работает (((

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;


 
Desdechado ©   (2007-07-10 21:51) [15]

Теперь расскажи, зачемтебе LIKE, да еще и с %, если имя юзера известно точно?


 
Yurij-7   (2007-07-10 21:57) [16]

ну это я взял с примера, так у меня работало на дбф файлах, а вылечил свою проблему так

iBQuery1.SQL.Text := "select * from spr_manager where ldap_manager = :manager"

Огромное всем спасибо за помощь, самое большое спасибо Desdechado



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

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

Наверх




Память: 0.5 MB
Время: 0.026 c
15-1183831959
MsGuns
2007-07-07 22:12
2007.08.05
Почему в рекламных роликах такие противные голоса ?


2-1183875954
>>DEATH<<
2007-07-08 10:25
2007.08.05
Загрузка картинок из DLL


15-1184146176
ArtemESC
2007-07-11 13:29
2007.08.05
Что лучше?


2-1183879448
sl8er
2007-07-08 11:24
2007.08.05
Не вижу изменения


15-1183565551
Илья Иванович
2007-07-04 20:12
2007.08.05
Визуализация экономического метода