Имя: Пароль:
1C
 
Как правильно использовать формат в данном случае
0 1ctube
 
14.09.18
16:25
День добрый. Из 1с льются данные в базу скл. В запросе в 1с есть строка на которую она ругается при выгрузке, вот:
|AND dategood= '" + Формат(НаборЗаписей.Fields("dategood").Value, "ДФ=""гггг""") + "'";

Тип поля dategood в базе скл: int. И данные в нём хранятся в таком виде: 2018

А ошибка такая: Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Conversion failed when converting the varchar value '2 018' to data type int.

Думаю из-за того что год стал таким:2 018

Вопрос: как это исправить?
1 Cool_Profi
 
14.09.18
16:28
НаборЗаписей.Fields("dategood").Value

Это как выглядит в отладчике?
2 dmt
 
14.09.18
16:28
стрЗаменить(Перем, Символы.НПП, "")
3 s03
 
14.09.18
16:28
(0) а возможно из-за пустой даты, при таком "формате" пустая дата будет пустой строкой, а в базе sql нужно число. Добавь в формате как должна отображаться пустая дата
4 Пуля
 
14.09.18
16:28
Тебе же говорят , после формата = типстрока, а ты его в число пихуешь?
5 Лефмихалыч
 
14.09.18
16:28
ЧГ=0
6 Пуля
 
14.09.18
16:29
Кто все эти люди?
7 1ctube
 
14.09.18
16:31
(3) А как это сделать?
8 1ctube
 
14.09.18
16:32
(4) И что теперь делать?
9 1ctube
 
14.09.18
16:32
(1) Выглядит так: 2 018
10 dmt
 
14.09.18
16:33
если "Тип поля dategood в базе скл: int", зачем формат даты использовать?
11 Лефмихалыч
 
14.09.18
16:33
что возвращает ТипЗнч(НаборЗаписей.Fields("dategood").Value)?
12 Пуля
 
14.09.18
16:36
СКЛ   === CONVERT(int, Херь) AS int
1С= Число(Херь)
13 Cool_Profi
 
14.09.18
16:36
А если так

|AND dategood= '" + Формат(НаборЗаписей.Fields("dategood").Value, ""ЧГ=""") + "'";

?
14 Лефмихалыч
 
14.09.18
16:39
(13) а этого варианта он не видит еще с поста №5
15 RomanYS
 
14.09.18
16:44
Блин sql хочет число, а Вы ему пихаете строку.
Я не знаю, как sql отличает строки от чисел, но скорее всего надо просто убрать кавычки.
16 Cool_Profi
 
14.09.18
16:48
(14) Он, наверное, просто не понял, куда ему это пихнуть...
17 1ctube
 
14.09.18
16:49
(13) После вашего варианта dategood принимает тип строка?
18 Вафель
 
14.09.18
16:49
(15) вообще то в ТЕКСТЕ запроса никак не может  быть числа, только строки
19 MyNameIs
 
14.09.18
16:49
(13) |AND dategood= " + Формат(НаборЗаписей.Fields("dategood").Value, ""ЧГ=0"");
20 Cool_Profi
 
14.09.18
16:51
(17) Скуль, зараза, умный. Сам сконвертит, если сможет
21 spiller26
 
14.09.18
16:52
(0) У вас при форматирование происходит преобразование в "2 018"
22 hhhh
 
14.09.18
16:52
(18) кавычки тогда ведь по-любому убрать надо.
23 1ctube
 
14.09.18
16:53
(19) Ошибка при запуске:
Ожидается символ ')'
24 MyNameIs
 
14.09.18
16:54
(23) дай больше инфы
25 RomanYS
 
14.09.18
16:54
(18) речь про одинарные кавычки окружающие год
26 Лефмихалыч
 
14.09.18
16:54
(23) ну,  так исправь ошибку-то
27 Cool_Profi
 
14.09.18
16:55
|AND dategood= " + Формат(НаборЗаписей.Fields("dategood").Value, "ЧГ=0") + "
28 spiller26
 
14.09.18
16:55
Формат(2018, "ЧЦ=4; ЧРГ=; ЧВН=; ЧГ=")
29 hhhh
 
14.09.18
16:55
(23) скобки лень сосчитать уже? ну вы даете. Пятница.
30 RomanYS
 
14.09.18
16:56
самый просто вариант - тупо проверить:
AND dategood = 2018
Если так работает, то проблема в кавычках
31 MyNameIs
 
14.09.18
16:57
|AND dategood= " + Формат(НаборЗаписей.Fields("dategood").Value, "ЧГ=0");

вот это точно должно запустить!
32 spiller26
 
14.09.18
16:57
(28) хотя этого достаточно
Формат(2018, "ДФ=гггг; ЧГ=")