Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема insert into получаемая строка превысит допустимые размеры (число прочтений - 3222 )
dsclue
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Местоположение: Санкт-Петербург
Зарегистрирован: 15. Апреля 2015
Пол: Мужской
insert into получаемая строка превысит допустимые размеры
23. Июня 2015 :: 12:51
Печать  
Подскажите, что не так делаю.
нужно вставить строки во временную таблицу
ТЗ_SQL.Выполнить(Стр)
пишет: "получаемая строка превысит допустимые размеры"

Стр = "CREATE TABLE ТаблВрем (СпрID Char(9),VERSTAMP int);";
ТЗнВыгрузки.ВыбратьСтроки();
Пока ТЗнВыгрузки.ПолучитьСтроку() = 1 Цикл
     Стр = Стр + " INSERT INTO ТаблВрем (СпрID, VERSTAMP) VALUES ('"+ТЗнВыгрузки.ID+"',"+ТЗнВыгрузки.VERSTAMP+");";
КонецЦикла;
Стр = Стр +"INSERT INTO " + ИмяТаблицы + " select * from ТаблВрем; "+
                 "DROP TABLE ТаблВрем;";

ТЗ_SQL.Выполнить(Стр);

  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re:  insert into получаемая строка превысит допустимые размеры
Ответ #1 - 23. Июня 2015 :: 13:25
Печать  
Стр = Стр + "
| INSERT ...
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re:  insert into получаемая строка превысит допустимые размеры
Ответ #2 - 23. Июня 2015 :: 13:29
Печать  
При выполнении запроса возникает какая-то ошибка, которая пытается вывалится в окно сообщений
В текст описания ошибки входит текст запроса
А окно сообщений не умеет показывать строки длиннее то ли 200, то ли 256 символов
  

1&&2&&3
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re:  insert into получаемая строка превысит допустимые размеры
Ответ #3 - 23. Июня 2015 :: 14:29
Печать  
Перехватчик же есть, забыли что ли?
http://www.1cpp.ru/docum/icpp/html/Hooker.html#addverylongstringrestructure
  
Наверх
www  
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re:  insert into получаемая строка превысит допустимые размеры
Ответ #4 - 24. Июня 2015 :: 05:11
Печать  
Вообще-то для таких случаев и придуман метод "ВыполнитьSQL_ИзТЗ"
http://www.1cpp.ru/docum/icpp/html/ODBC.html#sql-exesql-fromtv

Конкретно для этого случая будет что-то вроде такого
Код
Выбрать все
//Удаляем/создаем временную таблицу
ТЗ_SQL.ВыполнитьСкалярный("
  |IF OBJECT_ID('tempdb..#ТаблВрем', 'U') IS NOT NULL
  |  DROP TABLE #ТаблВрем;
  |CREATE TABLE #ТаблВрем (СпрID Char(9),VERSTAMP int);");

//Собственно вставка строк
ТЗ_SQL.Подготовить("INSERT INTO #ТаблВрем (СпрID, VERSTAMP) VALUES (?, ?)");
ТЗ_SQL.ВыполнитьSQL_ИзТЗ(ТЗнВыгрузки);
 

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать