|
ADODB.Connection записать таблицу значений | ☑ | ||
---|---|---|---|---|
0
MiniMuk
18.07.13
✎
08:20
|
В 1с запросом получаю набор данных, хочу сохранить во внешнюю таблицу.
Делаю, сохраняю в таблицу. Таблица = Запрос.Выполнить().Выгрузить(); //Подключаюсь к базе
хочу сохранить таблицу, как можно сделать кроме Какаятострока ="insert into " + КакаятоБаза + ".dbo.КакаятоТаблица (Поле1,Поле2) |values ('Значение1', 'Значение2') |, ('Значение2', 'Значение4' )"; try Конект.Execute("BEGIN TRANSACTION"); Конект.Execute("set implicit_transactions off"); Конект.Execute(Какаятострока) ; Конект.Execute("Commit"); except Конект.Execute("Rollback"); Message(ОписаниеОшибки()); endtry; Кроме как формировать Какаятострока в цикле есть еще способы? СП по функциям ADODB.Connection есть читаемая? |
|||
1
shuhard
18.07.13
✎
08:24
|
(0) Insert такой возможности не представляет, только Select
|
|||
2
MiniMuk
18.07.13
✎
08:31
|
(1) Запрос я формирую в терминах 1с. Тоесть у меня там полноценные ссылки, перечисления, значения. На выходе плоская таблица для excel.
Было бы проще конечно весь запрос поместить в insert |
|||
3
shuhard
18.07.13
✎
08:33
|
(2) используй булк, то ни какой гарантии, что это будет быстрее нет
|
|||
4
MiniMuk
18.07.13
✎
08:36
|
(3) это что? пни в сторону? мне не обязательно быстрее, это будет регламетное задание раз в сутки. просто боюсь записей будет много строка запроса ну ооочень длинная получиться
|
|||
5
shuhard
18.07.13
✎
08:39
|
(4) откуда много строк, строка одна, выполняемая в цикле
|
|||
6
tplink741nd
18.07.13
✎
08:41
|
(5) а зачем в цикле делать?
|
|||
7
MiniMuk
18.07.13
✎
08:43
|
(5) ну к примеру я получил запросом 2222 строки. у меня в inser секция values будет 2222 скобок values ('Значение1', 'Значение2'), ('Значение2', 'Значение4' )('Значение1', 'Значение2'), ... 2222 раза
|
|||
8
Серго62
18.07.13
✎
08:44
|
(0) Не знаю поможет или нет, но есть объект ADO.Recordset с ним можно работать почти как с таблицей значений. Почитать можно здесь http://www.askit.ru/custom/progr_admin/m13/13_03_01_ado_recordset_opening.htm
|
|||
9
tplink741nd
18.07.13
✎
08:46
|
(7) можно это делать так
insert табл1 (поле1, поле2, поле3) select поле1, поле2, поле3 from табл1 т.е. селектом ты получаешь 2222 строк а верхний инсерт их сразу пихает в нужную таблицу, как-то так |
|||
10
shuhard
18.07.13
✎
08:46
|
(7) ещё раз
что мешает сделать 2222222 Insert по одной строке, а не один на 222222 строк ? |
|||
11
tplink741nd
18.07.13
✎
08:48
|
(10) для чего это делать?
|
|||
12
tplink741nd
18.07.13
✎
08:48
|
по одной строке?
|
|||
13
tplink741nd
18.07.13
✎
08:50
|
в (9) ошибся - в селекте естественно указывается таблица из которой нужно читать данные, а в инсерте таблица - в которую записывать
|
|||
14
MiniMuk
18.07.13
✎
09:01
|
(9) inser в АДО а селект в 1с? ничего не смущает
|
|||
15
MiniMuk
18.07.13
✎
09:04
|
(10) Тоже вариант, просто нухочется не влоб задачу, заодно ченибудь новое узнать. Пойду читать можно ли (8) собственно как данные из ADO.Recordset читать понятно, а можно ли туда запихать пойду читну
|
|||
16
Серго62
18.07.13
✎
09:08
|
(15) Можно и читать и добавлять
|
|||
17
ДенисЧ
18.07.13
✎
09:16
|
(10) Мешает ограничение на размер запроса в адо...
(0) переходи на 77, там эо реализовано |
|||
18
MiniMuk
18.07.13
✎
09:23
|
(17) Клево, почти закончили переход на 8.2 а тут, вау, на 7.7 такая плюшка есть, айда обратно?! 7.7 ну подтупливала сильно
|
|||
19
MiniMuk
18.07.13
✎
09:28
|
(17) я ПОДОЗРЕВАЛ что есть ограничение
|
|||
20
shuhard
18.07.13
✎
09:33
|
(17)[Мешает ограничение на размер запроса в адо... ]
открой для себя метод AddNew |
|||
21
Jaap Vduul
18.07.13
✎
09:44
|
2000 строк - это не много, можно и циклом по одной строке. Когда строк действительно много, то данные из 1цэ сохраняем в текстовый файл, а через ADO вызываем bulk insert - будет очень быстро.
|
|||
22
ДенисЧ
18.07.13
✎
09:44
|
(20) Имеется в виду - сформировать один запрос на всю базу. Вот тут-то и...
|
|||
23
Jaap Vduul
18.07.13
✎
09:47
|
(20) Видимо, имелось в виду запихать все 2000 инсертов в один батч.
|
|||
24
shuhard
18.07.13
✎
09:48
|
(23) булк предложен в (3) =)
|
|||
25
MiniMuk
18.07.13
✎
09:55
|
(24) можно кратенький пример?
|
|||
26
MiniMuk
18.07.13
✎
09:56
|
(21) Много это сколько? сейчас пытаюсь представить масштабы происходящего
|
|||
27
Jaap Vduul
18.07.13
✎
10:13
|
(25) http://msdn.microsoft.com/ru-ru/library/ms188365.aspx
(26) over 9000 |
|||
28
MiniMuk
18.07.13
✎
10:42
|
(27) Оромное, просто шикарно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |