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



Как правильно использовать формат в данном случае

Как правильно использовать формат в данном случае
Я
   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

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

Это как выглядит в отладчике?
   dmt
 
2 - 14.09.18 - 16:28
стрЗаменить(Перем, Символы.НПП, "")
   s03
 
3 - 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
Кто все эти люди?
   1ctube
 
7 - 14.09.18 - 16:31
(3) А как это сделать?
   1ctube
 
8 - 14.09.18 - 16:32
(4) И что теперь делать?
   1ctube
 
9 - 14.09.18 - 16:32
(1) Выглядит так: 2 018
   dmt
 
10 - 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С= Число(Херь)
   Cool_Profi
 
13 - 14.09.18 - 16:36
А если так

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

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

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


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