Имя: Пароль:
1C
 
1c++. Добавить строку в таблицу SQL
0 DTrofimov
 
14.01.08
17:10
Подскажите, пожалуйста, как мне добавить строку с новой нформацией в таблицу? Можно ли это сделать как-то пакетно, разом много строк с различной инфой, или только построчно?
1 Мулька
 
14.01.08
17:14
А 1С их корректно потом схавает ? Или таблицы не 1С ?
2 DTrofimov
 
14.01.08
17:15
Таблица своя.
3 sapphire
 
14.01.08
17:15
(0) Можно.
Синтаксис: ВыполнитьSQL_ИзТЗ(Таблица, КоличествоСтрок)

Параметры:

Таблица - тип: ТаблицаЗначений. Источник данных для параметров подготовленного запроса. Имена колонок не имеют значения, берется в расчет позиция колонки, т.е. значения первой колонки подставляются в качестве первого параметра запроса, вторая колонка соответствует второму параметру и т.д.;
КоличествоСтрок - тип: Число. Необязателен, по умолчанию равен 0. Данный параметр определяет размер блока, который будет заполняется параметрами из таблицы, без пересылки на сервер базы, как только количество строк в блоке достигнет указанного - в параметре производится пересылка данных на сервер с последующем очищением буфера. Если передано нулевое значение данного параметра, то расчет размера блока производится по следующей формуле: всего общее количество строк переданной таблицы умножается на 0.1 ( т.е. 10% от общего числа строк).
Описание: выполняет подготовленный запрос для каждой строки из переданной таблицы. При этом значения параметров запроса устанавливаются из строки переданной таблицы.

Параметры могут быть добавлены методом ДобПараметр / AddParam или построены ПостроитьПараметры / BuildParams. В случае если количество параметров равно нулю, происходит попытка построить параметры автоматически.

Допустимо чтобы значения параметров были агрегатного типа, при этом происходит их преобразование к идентификаторам соответственно типам SQL параметров.

Пример:

rc = СоздатьОбъект("ODBCRecordSet");
rc.Execute("DELETE FROM [TestSQL].[dbo].[MyTable]");
rc.Close();

rc.Prepare("INSERT INTO MyTable (NAME, AGE, SALARY, DATEOFBIRTH) VALUES(?, ?, ?, ?)");
тз = СоздатьОбъект("ТаблицаЗначений");

тз.НоваяКолонка("NAME","Строка");
тз.НоваяКолонка("AGE","Число",4);
тз.НоваяКолонка("SALARY","Число",18,2);
тз.НоваяКолонка("DATEOFBIRTH","Дата");

for i = 1 to 10 do
тз.НоваяСтрока();
       тз.NAME        = "Панферов Вартан";
       тз.AGE         = 28;
       тз.SALARY      = 1453.12;
       тз.DATEOFBIRTH = '17.11.1974';
       тз.НоваяСтрока();
       тз.NAME        = "Гусев Дмитрий";
       тз.AGE         = 23;
       тз.SALARY      = 1233.99;
       тз.DATEOFBIRTH = '09.03.1980';
enddo;
rc.ExeSQL_FromTV(тз);
4 Мулька
 
14.01.08
17:20
Можно и через
cn = СоздатьОбъект( "ADODB.Connection" );
5 DTrofimov
 
14.01.08
17:22
(3) Спасибо.
6 DTrofimov
 
14.01.08
17:22
(4) Не, хочу через 1с++
7 Mikeware
 
14.01.08
18:20
Ребяты, вы мне одно скажите - документацию вообще кто-нибудь (кроме тех, кого потом называют "гуру") читает????  
Поражает: чувак взялся за 1с++ - то бишь за T-SQL - и не удосужился прочитать ни BOL, ни als/chm/doc к 1с++....
8 Джинн
 
14.01.08
18:27
(7) Дока - она для ламеров! КАнкретным пацанам доку читать в падлу.
Независимо от того, куда вы едете — это в гору и против ветра!