v7: MySQL / 1c++ / ВыполнитьSQL_ИзТЗ - Передача числового параметра в запрос #785298


#0 by Maximich
Добрый день. Помогите разобраться с проблемой. ODBC драйвер 5.3. Устанавливаю соединение с сервером MySQL. Подключаюсь к базе. Создаю временную таблицу. И пытаюсь туда из ТЗ залить данные. Ошибок нет. Все отлично. Но когда пытаюсь сделать запрос к этой таблице. Вместо чисел возвращаются нули. При этом текст выгружается нормально. Перепробовал уже все подходящие типы из Результата также ноль. Пример кода:     RS.Выполнить("CREATE TEMPORARY TABLE tmp_table(id INT);");              RS.Подготовить("INSERT INTO tmp_table (id) VALUES(?);")
#1 by Torquader
Проще сделать вручную, то есть через ADODB выполнить запрос INSERT и передать параметры через подготовку запроса
#2 by Maximich
вручную то можно, но 1cpp дает возможность получать результаты сразу в ТЗ или ИТ. Что намного удобней. + при выгрузке у меня может быть 10-20 тыс запросов. они конечно отработают, но ...
#3 by Torquader
Я просто когда сталкивался с работой ADODB, то часто оказывалось, что там типы данных немного другие нежели те, которые ожидаются - если число оказывается в 8 байт, то система для передачи в 1С его переведёт в Double - и что там с ним будет - одному богу известно. И - зачем результат пихать в таблицу, если есть объект RecordSet, по которому можно перемещаться как по таблице (MoveNext, MoveFirst и т.п.) ?
#4 by ADirks
а int - это правильно вообще? может просто int?  или bigint, если оч хочется
#5 by Maximich
А без разницы. Скажем так INT означает какой ширины будет столбец при просмотре.
#6 by Maximich
P.S. Проблема решилась перестановкой строк: RS.Подготовить("INSERT INTO tmp_table (id) VALUES(?);"); RS.ДобПараметр(1,4,8,0); Иногда прочтение документации вредно для здоровья. Не все что там написано является правдой.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С