Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / sql+ delphi запрос с параметром функция year / 8 сообщений из 8, страница 1 из 1
19.05.2016, 16:11
    #39239298
tigra36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
Доброго времени суток, есть такая ситуация,(привожу все упрощенно ,важно понять механизм)
Есть запрос , выполняется в програмке delphi лежит в adoquery ,вида
Код: sql
1.
2.
Select pole1,pole2, year('01.01.1950)
From table1 


Результатом имеем таблицу pole1 pole2 1950 ,вопросов нет все работает,
Тот же запрос
Код: sql
1.
2.
Select pole1,pole2, year(:p)
From table1


Вместо явного указания даты ставлю параметр p, этот параметр берётся из поля tedit или из datetimepicker, в програмке
Я пробовал и так и так разницы нет ошибка одна и та же sql0245n вопрос возможна ли вообще такая конструкция как во втором примере?
И ещё пояснение програмка должна на указанную мной дату посчитать возраст, т.е. я указываю ей дату
Она выполняет запрос отбирает записи БД и последний столбец вычисляемый дата указанная мной минус дата рождения из базы , конструкция: year(указанная дата)-year(дата рождения из базы), т.е я хочу знать сколько лет было человеку в, например , 2007 году
Деле код делфи
Код: pascal
1.
2.
3.
4.
procedureTForm3.Button1Click(Sender: TObject); 
begin 
adoquery1.close; adoquery1.Parameters.ParamByName('p').Value:=datetimepicker1.DateTime;
 adoquery1.open;
...
Рейтинг: 0 / 0
19.05.2016, 21:48
    #39239567
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
sql0245n - ответ на ваш вопрос.

В DB2 может быть куча одноимённых функций, различающихся типом параметра. На этапе компиляции вашего SQL-выражения тип :p оказался неизвестен. Перед компилятором SQL-выражений возникла неразрешимая для него проблема - какую из функций YEAR взять. У adoquery1.Parameters, возможно, можно явно задать типы типы параметров. И/или использовать year(cast(:p as timestamp))
(DateTime, судя по названию, это не DATE, а TIMESTAMP).
...
Рейтинг: 0 / 0
20.05.2016, 09:31
    #39239712
tigra36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
Спасибо, за ваш ответ, с параметрами query я пробовал играть всеми возможными способами безрезультатно, помогло использование cast в коде запроса, буду осваивать параметры глубже.
...
Рейтинг: 0 / 0
20.05.2016, 11:24
    #39239829
m&m
m&m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
tigra36,

adoquery1.Parameters.ParamByName('p').AsDateTime := ...
не работает?
...
Рейтинг: 0 / 0
20.05.2016, 15:58
    #39240208
tigra36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
m&m,

Вы знаете, несколько вариантов пробовал, asDate, asDatetime, datetostr(datetimepicker1.date) но ни один не подошёл, я как бы новичек в этом деле, и по этому предполагаю что возможность такая есть, но пока только правка запроса с использованием cast дала результат.
...
Рейтинг: 0 / 0
20.05.2016, 16:11
    #39240229
tigra36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
Поправка : на такой вариант как вы указали ('имя_параметра').asdatetime:= ......
Делфи выдаёт ошибку на компиляции undeclared identifier в окне подстановки самое подходящее это value
...
Рейтинг: 0 / 0
20.05.2016, 18:54
    #39240388
m&m
m&m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
tigra36,

увы, мог и забыть.
но по-моему, как-то можно задать этот DateTime.
м.б. у ParamByName есть свойство а-ля Datatype,
которое надо явно указать (что-то вроде :=ftDataTime)
...
Рейтинг: 0 / 0
20.05.2016, 22:52
    #39240476
tigra36
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sql+ delphi запрос с параметром функция year
m&m,
Да-да есть там такое, я попробовал в свойствах параметра явно выставлять тип, ну как бы самые очевидные варианты но ни к чему не пришёл, не исключаю что разгадка именно там и кроется, самый подходящий ftDate кажется, ну в общем ещё буду разбираться.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / sql+ delphi запрос с параметром функция year / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]