Вход | Регистрация


Ошибка преобразования значения varchar в тип данных int

Ошибка преобразования значения varchar в тип данных int
Я
   1ctube
 
24.06.18 - 15:18
День добрый. Из 1с записываю данные в скл. Есть запрос, с условием:
AND Year = '" + НаборЗаписей.Fields("Year").Value + "'";

Так вот, после выполнения, 1с выдаёт ошибку:
Ошибка преобразования значения varchar "2 018" в тип данных int.
Тип поля "Year "в скл как раз int, и значения в поле скльной базы:"2018".
Это значит вот здесь: НаборЗаписей.Fields("Year").Value данные представлены в типе данных varchar ? Как преобразовать в int на стороне 1с?
 
 
   shuhard
 
1 - 24.06.18 - 15:19
(0) в 100500 раз
2 018 не число, число 2018
   1ctube
 
2 - 24.06.18 - 15:22
(1) значит, когда из скл в 1с я получаю данные НаборЗаписей.Fields("Year").Value то 1с форматирует число в строку? Если в скл 2018, в 1с получается "2 018"?
   МихаилМ
 
3 - 24.06.18 - 15:23
   Смотрящий
 
4 - 24.06.18 - 15:32
Это конечно жесть когда число отдается нечислом ...
   youalex
 
5 - 24.06.18 - 15:36
(0) не понял.
Если "Тип поля "Year "в скл как раз int", то зачем ты литерал в условии включаешь в одинарные кавычки?
вот это: = '" +  + "'"  ?

Ну и, конечно, если записать литерал без пробела, даже в кавычках,  то умный скуль его неявно преобразует в int
   spectre1978
 
6 - 24.06.18 - 15:37
(0) а зачем одинарные кавычки? И почему не воспользоваться ADO параметрами вместо того чтобы формировать запрос из кусков?
   hhhh
 
7 - 24.06.18 - 16:10
(0) AND Year = '" + Формат(НаборЗаписей.Fields("Year").Value, "ЧГ=0") + "'";

с тебя 500р в кассу мисты.
   Asmody
 
8 - 24.06.18 - 17:44
(4) Жесть когда число при неявном преобразовании в строку получает расделители разрядов.
   Asmody
 
9 - 24.06.18 - 17:47
Еще большая жесть когда из внешнего источника данные прямо в запрос без проверки пихают.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует