powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / INSERT INTO и два соединения
11 сообщений из 11, страница 1 из 1
INSERT INTO и два соединения
    #35030135
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем !
Подскажите пожалуйста, есть ли быстрый способ заливки данных из одной таблицы в другую , вроде этого:

cn.Execute "INSERT INTO Table1 (Item1,Item2,Item3,Item4) " & _
" SELECT Item1,Item2,Item3,Item4 FROM Table2 "

но используя два соединения. Так как выборка данных второй таблицы идет с удаленного сервера. Обе таблицы с одинаковой структурой. Или всетаки придется открывать recordset со вторым соединением и в цикле добавлять его в первую ?
Спасибо.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35030331
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. в сторону Bulk insert
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35030563
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Но по поводу BULK INSERT нашел только вставку данных из файла. Я использую MySql . Если можно, напишите пример вставки данных из одной базы в другую.
Спасибо.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031088
DEP1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем вас это
Код: plaintext
1.
Или всетаки придется открывать recordset со вторым соединением и в цикле добавлять его в первую ?
не устраивает?
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031109
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скоростью не устраивает. Соединение через интернет. Нужно время на соединение, потом на выборку данных. А уж потом цикл, который тоже требует время, если большое колличество строк. Это в случае , если записываю с сервера в локальную базу.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031130
DEP1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может что вроде этого поможет:

Save a Recordset:

Код: plaintext
1.
2.
Dim rs as New ADODB.Recordset
rs.Save "c:\yourFile.adtg", adPersistADTG


Open a persisted file with Recordset.Open:


Код: plaintext
1.
2.
Dim rs as New ADODB.Recordset
rs.Open "c:\yourFile.adtg", "Provider=MSPersist",,,adCmdFile
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031573
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Попробую сделать , операясь на Ваш совет. Протестирую и выберу оптимальный вариант.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031653
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Function CopyData(sql As String, cnFrom As ADODB.Connection, cnTo As ADODB.Connection) As Boolean
Dim rs As New ADODB.Recordset
Dim st As New ADODB.Stream
Dim s As String
    On Error GoTo errh:
    rs.Open sql, cnFrom, adOpenStatic, adLockBatchOptimistic
    st.Type = adTypeText
    st.Open
    rs.Save st, adPersistXML
    rs.Close
    s = st.ReadText
    st.Close
    s = Replace(s, _
        "rs:basecatalog='" & cnFrom.Properties("Current Catalog").Value & "'", _
        "rs:basecatalog='" & cnTo.Properties("Current Catalog").Value & "'")
    s = Replace(s, "<rs:data>", "<rs:data><rs:insert>")
    s = Replace(s, "</rs:data>", "</rs:insert></rs:data>")
    st.Open
    st.WriteText s
    st.Position =  0 
    rs.Open st
    Set rs.ActiveConnection = cnTo
    rs.UpdateBatch
    rs.Close
    CopyData = True
errh:
End Function
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031664
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверялось на двух MSSQL серверах, возможно для других источников у свойства "Current Catalog" будет другое название.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35031820
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Antonariy за готовую функцию. Сейчас пробую реализовать задачу с командой MySql LOAD DATA. Кажется она быстрее будет. Но все равно надо протестировать разные варианты. Спасибо.
...
Рейтинг: 0 / 0
INSERT INTO и два соединения
    #35032634
sergeych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдруг кому тоже пригодится.На форуме MySql посоветовали использование FEDERATED таблиц. Хорошая штука, только в ней проблемы с агрегатными функциями. http://www.oreillynet.com/pub/a/databases/2006/08/10/mysql-federated-tables.html?page=3
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / INSERT INTO и два соединения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]