SQL: параметры из excel генерируют ошибку: строковые данные, усечение справа

После добавления в запрос параметра 2 я получил сообщение об ошибке: Ошибка SQL Server «Строковые данные, правильное усечение».

Параметры вводятся пользователем в электронной таблице Excel 2010 и используются в операторе SQL для обновления отчета.

Пример:

Финансовый год (параметр 1): 2014, Дата ГК (параметр 2) ггггммдд: 20140228

Ошибка генерируется: "GLPOST.JRNLDATE‹=?" который является параметром2

WHERE GLAMF.ACCTID = GLPOST.ACCTID AND GLACGRP.ACCTGRPCOD = GLAMF.ACCTGRPCOD AND 
GLPOST.DRILLDWNLK = BKTRAND.DDLINK AND GLACGRP.SORTCODE='1000' AND   
GLPOST.FISCALYR>=? AND GLPOST.JRNLDATE<=?

В базе данных GLPOST.FISCALYR имеет значение (char(4), не нуль) и работает нормально.
GLPOST.JRNLDATE (десятичное число (9,0), не null) вызывает ошибку. Если я ввожу жестко закодированное значение, такое как: 20140228, 20131231 и т. д., оно работает, но, похоже, не извлекает значение из ячейки.

Я пробовал разные форматы, но безуспешно, есть идеи? Благодарность!!


person Seva    schedule 12.03.2014    source источник


Ответы (1)


Может быть, попробуйте указать параметр следующим образом:

GLPOST.FISCALYR>=? И GLPOST.JRNLDATE‹=cast(? as decimal(9,0))

person attila    schedule 12.03.2014
comment
Я пробовал приведение, но это не сработало, однако, если я удалю параметр 1 (финансовый год), запрос выполняется хорошо. Возможно, значение, предназначенное для параметра2 (char(4)) было помещено в параметр1... - person Seva; 14.03.2014
comment
Можете ли вы опубликовать код, который вы используете для добавления параметров? - person attila; 14.03.2014
comment
Код точно такой же, как я разместил выше, это соединение ODBC, код находится в тексте команды, а затем каждый? связан с ячейкой в ​​электронной таблице Excel. Я предполагаю, что проблема где-то там - person Seva; 14.03.2014