Параметры в UDF

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 16 мар 2005, 11:14

kdv писал(а):а ты вопрос задай по человечески, тогда тебе нормально и ответят.
версия сервера, что не получается, какая ошибка.
fb 1.5 в делфи в квери , при запуске удф без параметров - работает , а с выдает ошибку 804 , причем параметры не удф а иммено квери

IBDatabase1.Connected:=true;
IBQuery1.SQL.Clear;
rew:=' select find_np(:app,''0'',''01.01.1990'','' '','+
''' '',''ËÎÕ'',''E:\Common\vmr2.fdb'','+
'''SYSDBA'',''masterkey'')'+
' FROM DICT_SEX where code=1 ';
IBQuery1.SQL.Add(rew) ;
IBQuery1.ParamByName('app').AsString:='233';
IBQuery1.Open;

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 16 мар 2005, 11:43

есть FB 1.5.0, 1.5.1, 1.5.2 - какой именно?
какой текст ошибки 804?

p.s. двойные кавычки в третьем диалекте для других целей. пока ты на первом диалекте, еще ничего.

Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 16 мар 2005, 13:06

kdv писал(а):есть FB 1.5.0, 1.5.1, 1.5.2 - какой именно?
какой текст ошибки 804?

p.s. двойные кавычки в третьем диалекте для других целей. пока ты на первом диалекте, еще ничего.
Firebird 1.5.2 'Dynamic SQL Error'#$D#$A'SQL error code = -804'#$D#$A'Data type unknown'
только я недумаю что это от версии зависит , и такая ошибка на всех удф выскакивает , когда пытаешься параметром передавать данные

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 16 мар 2005, 13:23

Известная грабля. Попробуй так:

Код: Выделить всё

select find_np(coalesce(:app, ''),

Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 16 мар 2005, 14:10

dimitr писал(а):Известная грабля. Попробуй так:

Код: Выделить всё

select find_np(coalesce(:app, ''),
всё равно глючно получается , если оно стринг преобразование надо делать , теряется смысл параметров

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 16 мар 2005, 18:19

ничего не понял

Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 16 мар 2005, 18:29

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

Лысый
Сообщения: 177
Зарегистрирован: 08 ноя 2004, 08:20

Сообщение Лысый » 16 мар 2005, 22:38

Denver писал(а):
dimitr писал(а):Известная грабля. Попробуй так:

Код: Выделить всё

select find_np(coalesce(:app, ''),
всё равно глючно получается , если оно стринг преобразование надо делать , теряется смысл параметров
Куда теряется :?: Что то ты не то говоришь или думаешь...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 17 мар 2005, 10:51

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

Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 17 мар 2005, 12:10

dimitr писал(а):
Denver писал(а):параметр нужен когда идет подряд энное каличество одного запроса с различными входяшими данными , для убыстрения процеса , а иначе всёравно всё стракой можна писать
Так точно. А что в моем предложении этому противоречит?
база разбирает его всё равно как строку ,
и так select find_np(coalesce(:app, ''), нефурычит вот так вот select find_np(coalesce(:app, cast ('' as varchar(30)),

Denver
Сообщения: 6
Зарегистрирован: 15 мар 2005, 18:52

Сообщение Denver » 17 мар 2005, 12:13

[quote="dimitr"][/quote]

не знаю , и вообще , я сделал ХП которая вызывает удф , и так работает , но всё равно это извращение :?

Ответить