powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка множества строк с датой
7 сообщений из 7, страница 1 из 1
Вставка множества строк с датой
    #39254517
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите что я делаю неправильно.
Мне нужно вставить строки вот таким запросом:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
insert into tarif(DATA_TR,DATA_R,MARK,NUMB,TARN,COD_POSL,COD_RIZN,
NORM_US,NORM_USD,CODE_NN,CODE_NDN,CODE_UNIT,COST_UNIT,NORM,
NORM_DOP, NORM_MAX,OPAL_TIP, CODE_FROG)
select cast(:dtr1 as date), cast(:dr1 as date),
MARK,NUMB,TARN,COD_POSL,COD_RIZN,
NORM_US,NORM_USD,CODE_NN,CODE_NDN,CODE_UNIT,COST_UNIT,NORM,
NORM_DOP, NORM_MAX,OPAL_TIP, CODE_FROG
from tarif
where tarn = :t
and numb=:n
and cast(data_tr as date) = cast(:dtr  as date) and
cast(data_r as date)=cast(:dr as date) and
cast(data_e as date)=cast(:de-1 as date)



IBExpert ругается что он не понимает cast(:dtr1 as date), cast(:dr1 as date). Говорит Data type unknown.
Как вставить множество строк с заданной датой в 2 столбцах.
Firebird 2.5 если что
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254519
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254524
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovУбери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.

может я неправильно объяснил
Дмитрий, эксперт ругается на дату в селекте. писал с кастом и без. одно и тоже
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254527
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrushэксперт ругается на дату в селекте.
Точный запрос и точное и полное сообщение об ошибке - в студию!
В том запросе, что в первом посте, ошибка только одна - с минус единицей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254638
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Может там и не даты в данных? DDL таблиц еще хорошо б посмотреть.
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254659
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
EXECUTE BLOCK (
   T    TYPE OF COLUMN TARIF.TARN    = ?T
  ,N    TYPE OF COLUMN TARIF.NUMB    = ?N
  ,DTR1 TYPE OF COLUMN TARIF.DATA_TR = ?DTR1
  ,DR1  TYPE OF COLUMN TARIF.DATA_R  = ?DR1
  ,DTR  TYPE OF COLUMN TARIF.DATA_TR = ?DTR
  ,DR   TYPE OF COLUMN TARIF.DATA_R  = ?DR
  ,DE   TYPE OF COLUMN TARIF.DATA_E  = ?DE
)AS
BEGIN

  INSERT INTO TARIF(DATA_TR, DATA_R
    ,MARK, NUMB, TARN, COD_POSL, COD_RIZN, NORM_US
    ,NORM_USD, CODE_NN, CODE_NDN, CODE_UNIT, COST_UNIT
    ,NORM, NORM_DOP, NORM_MAX, OPAL_TIP, CODE_FROG
  )

  SELECT CAST(:DTR1 AS DATE) AS DATA_TR, CAST(:DR1 AS DATE) AS DATA_R
        ,T1.MARK, T1.NUMB, T1.TARN, T1.COD_POSL, T1.COD_RIZN, T1.NORM_US
        ,T1.NORM_USD, T1.CODE_NN, T1.CODE_NDN, T1.CODE_UNIT, T1.COST_UNIT
        ,T1.NORM, T1.NORM_DOP, T1.NORM_MAX, T1.OPAL_TIP, T1.CODE_FROG
  FROM  TARIF T1
  WHERE (T1.TARN = :T)
    AND (T1.NUMB = :N)
    AND ( CAST(T1.DATA_TR AS DATE) = CAST(:DTR  AS DATE) )
    AND ( CAST(T1.DATA_R  AS DATE) = CAST(:DR   AS DATE) )
    AND ( CAST(T1.DATA_E  AS DATE) = CAST(:DE-1 AS DATE) )
  ;
END



при условии, что парсер SQL у Ваших компонентов доступа игнорирует предикат ":" в качестве указания параметра, и обрабатывает только предикат "?" для указания параметров запроса.
к примеру, это могут быть FIBPlus, UIB.
...
Рейтинг: 0 / 0
Вставка множества строк с датой
    #39254893
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovУбери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.

Спасибо. Проблема действительно была в -1 от параметра. Вынес за скобки и все стало нормально.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка множества строк с датой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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