Имя: Пароль:
1C
 
Как таблицу значений значений превратить во временную таблицу SQL ?
0 DmSk
 
24.03.08
10:35
Как таблицу значений значений превратить во временную таблицу SQL ? Есть ли какой быстрый способ, чем внесение строк таблицы в цикле ?
1 Sadovnikov
 
24.03.08
10:36
ВыгрузитьТаблицуВSQL(<?>,,,,);
Синтаксис:
ВыгрузитьТаблицуВSQL(<ТабЗнач>, <ТабКолонок>, <ИмяТабВSQL>, <ИмяБазыSQL>, <СоздаватьТаблицу>)
Назначение:
Создает в SQL базе с именем <ИмяБазыSQL> таблицу  <ИмяТабВSQL> (если <СоздаватьТаблицу> = 1) структуры, описанной в <ТабКолонок> и заполняет ее данными из <ТабЗнач>.
Параметры:

<ТабЗнач> - таблица значений, данные из которой будут переноситься в SQL. Доступные типы - строка, целое число, дробное число.
<ТабКолонок> - таблица, описывающая тип данных в каждой колонке таблицы ТабЗнач. Имеет 5 колонок (важен порядок):
1 - число, номер колонки в ТабЗнач
2 - строка, имя колонки в SQL
3 - число, тип данных в колонке ТабЗнач
4 - число, длина данных. Имеет смысл для строки (длина строки) и дробного числа (длина целой части)
5 - число, точность данных. Имеет смысл только для дробного числа (длина дробной части части)
<ИмяТабВSQL> - строка, имя таблицы в SQL.
<ИмяБазыSQL> - строка, имя базы в SQL, где находится таблица. Необязательный параметр. По умолчанию - текущая база данных.
<СоздаватьТаблицу> - число, необязательный параметр, создавать новую таблицу (СоздаватьТаблицу = 1) или дописывать данные в существующую (СоздаватьТаблицу = 0). Значение по умолчанию - 1.
2 mikecool
 
24.03.08
10:36
УложитьСписокОбъектов() от 1с++ не подойдет?
3 Sadovnikov
 
24.03.08
10:37
+(1) RiK_SQL.
4 DmSk
 
24.03.08
10:54
(2) только ТЗ, УложитьСписокОбъектов() это для списка значений, 1-й ответ само то
5 DmSk
 
24.03.08
10:55
забыл сказать спасибо
6 DmSk
 
24.03.08
10:57
поделитесь .als - ом для 1С-ки, чтоб в хелпе можно было открывать
7 Sadovnikov
 
24.03.08
11:02
(6) als - ом к чему?
8 DmSk
 
24.03.08
11:10
к 1С-ке 7.7 , ВыгрузитьТаблицуВSQL не работает
9 DmSk
 
24.03.08
11:11
ВыгрузитьТаблицуВSQL<<?>>(ТЗ_Отчет,,"#TabOst");
{Z:\KKU\ExtForms\Отчеты\ОтчетПоДвижениям.ert(686)}: Процедура не обнаружена (ВыгрузитьТаблицуВSQL)
При проверке модуля обнаружены синтаксические ошибки!,

скорее всего старая компонента 1С++
10 Sadovnikov
 
24.03.08
11:14
(9) Обрати внимание на (3). Это не 1С++, а RiK_SQL.
Если юзаешь 1С++, тогда тебе проще будет сделать что-то типа такого:

   ТекстЗапроса = "
   |Insert Into "+ИмяВторойБазы+".РаспределениеЗатратАвтоСтроки
   |(идДок, идСтроки, идФилиал, идПроект, идЦУЗ, идБП, Сумма)
   |Values
   |('"+идТекДок+"', ?идСтроки, ?идФилиал, ?идПроект, ?идЦУЗ, ?идБП, ?Сумма)
   |";

   запросЗапись = СоздатьОбъект("ODBCRecordSet");
   запросЗапись.Подготовить(ТекстЗапроса);
   запросЗапись.ДобПараметр(1, 14, 36,  0); //идСтроки
   запросЗапись.ДобПараметр(1, 14, 9,   0); //идФилиал
   запросЗапись.ДобПараметр(1, 14, 9,   0); //идПроект
   запросЗапись.ДобПараметр(1, 14, 9,   0); //идЦУЗ
   запросЗапись.ДобПараметр(1, 14, 9,   0); //идБП
   запросЗапись.ДобПараметр(1, 11, 19,  2); //Сумма
   
   КоличествоСтрок = итРаспределено.КоличествоСтрок();
   
   итРаспределено.ВыбратьСтроки();
   Пока итРаспределено.ПолучитьСтроку() = 1 Цикл
       Если (итРаспределено.НомерСтроки % 20) = 0 Тогда
           Состояние("Запись строки: "+итРаспределено.НомерСтроки+" / "+КоличествоСтрок);
       КонецЕсли;
       
       запросЗапись.УстПараметр("идСтроки", итРаспределено.идСтроки);
       запросЗапись.УстПараметр("идФилиал", РадугаСервис.ЗначениеВСтрокуБД(итРаспределено.Филиал));
       запросЗапись.УстПараметр("идПроект", РадугаСервис.ЗначениеВСтрокуБД(итРаспределено.Проект));
       запросЗапись.УстПараметр("идЦУЗ",     РадугаСервис.ЗначениеВСтрокуБД(итРаспределено.ЦУЗ));
       запросЗапись.УстПараметр("идБП",     РадугаСервис.ЗначениеВСтрокуБД(итРаспределено.БП));
       запросЗапись.УстПараметр("Сумма",     итРаспределено.Сумма);
       
       Если запросЗапись.Выполнить() = 0 Тогда
           Сообщить(запросЗапись.ПолучитьОписаниеОшибки());
           ОбъектП.ЗакрытьОкноСообщения();
           Предупреждение("Не удалось записать новые значения!");
           СтатусВозврата(0);
           Возврат;
       КонецЕсли;
   КонецЦикла;
11 Mikeware
 
24.03.08
11:18
А что, в 1С++ ВыполнитьSQL_ИзТЗ(<?>) уже отменили?
ВыполнитьSQL_ИзТЗ(<?>)
ExeSQL_FromTV(<?>)
Синтаксис:
ВыполнитьSQL_ИзТЗ(<tvValues>,<nNumOfRow>)
Назначение:
метод выполняет параметрический запрос и в качестве параметров берет значения из переданной таблицы.
Закон Брукера: Даже маленькая практика стоит большой теории.