powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Date как параметр запроса
9 сообщений из 9, страница 1 из 1
Date как параметр запроса
    #32592044
1man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь передать параметр as1 в запрос.

select * from contact_t
where DATE_CC >cast(:as1 as TIMESTAMP)

Однако когда этот IBQuery->Active=true; - выдается ошибка
Dynamic SQL error code=-804 Data type unknown

Пытаюсь прямо в Object Inspector для параметра as1 указывать DataType - тоже не помогает.
Зато когда параметра нет
where DATE_CC >cast('10.10.2003' as TIMESTAMP) - все ОК
В чем дело-то?

З.Ы. BCB6+FB1.02
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32592116
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на кой тебе там нужен CAST ?
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32592131
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и какого типа у тебя параметр as1?

Если типа Varchar/Char, тогда вопросы, а если TimeStamp, то делай просто:

select * from contact_t
where DATE_CC > :as1

-------------

А поле DATE_CC какого типа?
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32594136
1man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as1 – String
Но это не принципиально, GOLD прав, cast здесь не нужен. Это просто эксперимент. Никак толком не разберусь с передачей параметров запросов. Запутался, и чую - в трех соснах.

А вообще задача стоит так:
Передать параметр для Insert, типа

insert into GR_CL_T
( GR_GRCL, CL_GRCL)
select :GR, client_cc from contact_t
where DATE_CC >:Date1

Здесь GR и Date1– параметры типов Integer и DateTime

Подскажите, плиз, можно ли в IBDataSet->InsertSQL передать параметры подобно как в IBQuery для селекта? Я пытался в проге
IBDataSet4->Params[0]->AsDateTime=Date1
– ругается Pointer to structure request on left side of -> or _>*
Или стоит пойти другим путем?
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32594173
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там папаметры косвенно заполняются, из полей самого компонента. Если ты создашь параметр в InsertSQL которого небудет в компоненте, то фиг ты до него достучишься.
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32594178
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему же?..
Можно и достучаться.
Код: plaintext
1.
2.
3.
4.
5.
6.
type
  TTukTukDataSet = class(TIBDataSet);
............
  begin
    TTukTukDataSet(BDataSet4).QInsert.Params[ 0 ].AsDateTime := Date1;
............
  end;
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32594981
1man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 GOLD
Дык как же тогда передать параметр для инсерта? Не может же быть, чтоб этого не делали.
Вообще-то как ни странно
insert into GR_CL_T
(GR_GRCL , CL_GRCL)
select :GR , client_id
from client_t
where SALER_CL=
(select SALER_ID from SALER_T where SALER_T.LOGIN_SLR = user)
прокатывает для IBQuery несмотря на рекомендацию использовать компонент только для селекта. Но параметр в where не удалось передать.

4 Мимопроходящий
А для ВСВ6? В дельфях-то я еще мЕньший спец.
На http://]http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=13197 есть нечто похожее на то что мне надо, но на BCB не проходит - об этом я уже писал.
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32595379
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Те не понял как оно работает просто. Смотри, у тебя есть компонента TIBDataSet для работы с данными. Над данными можно производить грубо говоря 4 операции - выборку, вставку, изменение и удаление. Когда ты пишешь запрос для выборки, на основании этого запроса TDataSet создаёт внутри себя массив полей Fields, элементами которого изначально будут поля, возвращаемые запросом. В этот же массив ты можешь дополнительно добавить вычисляемые на клиенте поля (которые fkCalculated). каждое такое поле имеет своё имя. Для обычных полей (fkData) имена полей в компоненте совпадают с именами полей, прописанных в запросе SELECT и таким макаром компонента при выполнении запроса заполняет этот массив Fields. Собственно выборка данных осуществляется методом Open.
Для вставки новой строки в таблицу ты вызываешь метод Insert и в массиве Fields добавляется новый элемент с пустыми значениями в полях (или значениями по умолчанию). После вызова метода Insert ты можешь заполнять этот новый элемент с пустыми полями всякими разными способами. Не помню как оно в билдере, но что-то типа того: Fields->Field[0]->AsXxxx=... или Fields->FieldByName("ZZZ")->AsXxx=...
После того как ты заполнил все нужные поля, вызываешь метод Post, который подставляет из массива Fields значения в одноимённые поля команды INSERT и вызывает её. С Update делается аналогично.
...
Рейтинг: 0 / 0
Date как параметр запроса
    #32595387
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вобще, если тебе надо только команду INSERT выполнять, то можешь IBSQL использовать для этого и параметры там подставлятся будут так как тебе надо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Date как параметр запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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