Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка множества строк с датой / 7 сообщений из 7, страница 1 из 1
10.06.2016, 22:40
    #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
10.06.2016, 22:50
    #39254519
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка множества строк с датой
Убери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.06.2016, 23:25
    #39254524
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка множества строк с датой
Dimitry SibiryakovУбери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.

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

Может там и не даты в данных? DDL таблиц еще хорошо б посмотреть.
...
Рейтинг: 0 / 0
11.06.2016, 15:20
    #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
12.06.2016, 09:48
    #39254893
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка множества строк с датой
Dimitry SibiryakovУбери все касты кроме одного: cast(:de-1 as date).
У него -1 вынеси за скобки.

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


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