Передача параметров в FastReport из c#

312
12 августа 2017, 00:36

Пытаюсь передать цифры в стринговом формате в фаст репорт в sql запрос. Но выдаёт ошибку:

Ошибка построения отчета: ORA-01861: литерал не соответствует формату строки

c#:

report.SetParameterValue("ClientOrderN", txbClientOrderNumber.Text);
report.SetParameterValue("ClientOrderI", txbClientOrderItem.Text)

часть sql запроса в fastreport: (l.ORDER_NUMBER = (:ClientOrderNumber||'-'||:ClientOrederItem) or (:ClientOrderNumber is null and :ClientOrederItem is null) ORDER_NUMBER типа varchar, параметры в fastreport типа variant. Кто знает в чём причина моей ошибки подскажите пожалуйста. Не как не могу разобраться.

select PIPE_NUMBER, PIPE_YEAR, WC_INSTANCE, WORKCENTER_ID, RETURN_REASON, DIAMETER, THICKNESS, MELT_NUMBER, PART_WELD, STEELMARK, VENDER, WAREHOUSE_BEFORE_MOVING, res_und_order, CREATE_DATE, INSERT_OPERATOR, Date_Cancel_With_Reserved, Operator_PRM,
case when  Date_Cancel_With_Reserved is not null and res_und_order = ORDER_NUMBER and RETURN_ADDRESS is null then 'Подтверждено'
when Date_Cancel_With_Reserved is not null and res_und_order <> ORDER_NUMBER and RETURN_ADDRESS is null then 'Не подтверждено'
else 'Активно' end as reserv_status
from(
select p.RETURN_ADDRESS, p.ORDER_NUMBER, m.PIPE_NUMBER, m.PIPE_YEAR, s.WC_INSTANCE, r.WORKCENTER_ID, s.RETURN_REASON, m.DIAMETER, m.THICKNESS, m.MELT_NUMBER, m.PART_WELD, m.STEELMARK, m.VENDER, s.WAREHOUSE_BEFORE_MOVING, s.ORDER_NUM_RES||'-'|| s.ORDER_ITEM_RES as res_und_order, s.CREATE_DATE, s.INSERT_OPERATOR, first_value(p.CREATE_DATE) over(partition by m.SHOP_ID, m.PIPE_YEAR, m.PIPE_NUMBER order by s.CREATE_DATE desc, p.CREATE_DATE nulls first) as Date_Cancel_With_Reserved, row_number() over(partition by m.SHOP_ID, m.PIPE_YEAR, m.PIPE_NUMBER order by p.CREATE_DATE) as RN, first_value(p.INSERT_OPERATOR) over(partition by m.SHOP_ID, m.PIPE_YEAR, m.PIPE_NUMBER order by s.CREATE_DATE desc, p.CREATE_DATE nulls first) as Operator_PRM from WC_MAIN m
left join WC_7_3_SGP s on m.SHOP_ID = s.SHOP_ID and m.PIPE_YEAR = s.PIPE_YEAR and m.PIPE_NUMBER = s.PIPE_NUMBER
left join WC_4_8_PRIEMKA p on m.SHOP_ID = p.SHOP_ID and m.PIPE_YEAR = p.PIPE_YEAR and m.PIPE_NUMBER = p.PIPE_NUMBER and p.EDIT_STATE = 0 and p.CREATE_DATE > s.CREATE_DATE
left join WC_1_2_LIST l on m.SHOP_ID = l.SHOP_ID and m.PIPE_YEAR = l.PIPE_YEAR and m.PIPE_NUMBER = l.PIPE_NUMBER
left join ROUTE_PIPE_MOVES r on m.SHOP_ID = r.SHOP_ID and m.PIPE_YEAR = r.PIPE_YEAR and m.PIPE_NUMBER = r.PIPE_NUMBER
where s.RETURN_ADDRESS is not null and s.ORDER_NUM_RES is null and s.ORDER_ITEM_RES is null and m.EDIT_STATE = 0 and s.EDIT_STATE = 0 and l.EDIT_STATE = 0 and r.ACTION_DATE = (select max(ACTION_DATE) from ROUTE_PIPE_MOVES where PIPE_NUMBER = m.PIPE_NUMBER) and s.WC_INSTANCE = (select max(s.WC_INSTANCE) from WC_7_3_SGP s where s.PIPE_NUMBER = m.PIPE_NUMBER) and s.CREATE_DATE BETWEEN to_date(:START_DATE) and to_date(:END_DATE)
and (l.ORDER_NUMBER = (:ClientOrderNumber||'-'||:ClientOrederItem) or (:ClientOrderNumber is null and :ClientOrederItem is null)))
where RN = 1 and
(PIPE_NUMBER >= :PipeStart or :PipeStart is null)and
(PIPE_NUMBER <= :PipeEnd or :PipeEnd is null)and
(Date_Cancel_With_Reserved like to_date(:DateCancelReserv) or to_date(:DateCancelReserv) is null);
Answer 1

Подобная проблема была тут.

Разный NLS_DATE_FORMAT в каждом из инструментов.

Т.е. разные настройки клиентов выводят дату в разных форматах и оракл не может выполнить to_date() в одном из случаев.

READ ALSO
Как реализовать отправку данных без jQuery?

Как реализовать отправку данных без jQuery?

Как реализовать отправку данных, например при регистрации, без библиотеки jQuery, на чистом JavaScript?

268
Сайт с элементами игрофикации [требует правки]

Сайт с элементами игрофикации [требует правки]

Необходимо сделать сайт с определенным действием

301
Получение измененного значения из textarea(CKeditor)

Получение измененного значения из textarea(CKeditor)

Здравствуйте! Есть textarea с текстовым редактором CKeditor куда вставляется текст из БД:

241