INSERT INTO и два соединения - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день всем !
Подскажите пожалуйста, есть ли быстрый способ заливки данных из одной таблицы в другую , вроде этого:
cn.Execute "INSERT INTO Table1 (Item1,Item2,Item3,Item4) " & _
" SELECT Item1,Item2,Item3,Item4 FROM Table2 "
но используя два соединения. Так как выборка данных второй таблицы идет с удаленного сервера. Обе таблицы с одинаковой структурой. Или всетаки придется открывать recordset со вторым соединением и в цикле добавлять его в первую ?
Спасибо.

Решение задачи: «INSERT INTO и два соединения»

textual
Листинг программы
<font color="blue">Function</font> CopyData(sql <font color="blue">As</font> <font color="blue">String</font>, cnFrom <font color="blue">As</font> ADODB.Connection, cnTo <font color="blue">As</font> ADODB.Connection) <font color="blue">As</font> <font color="blue">Boolean</font>
<font color="blue">Dim</font> rs <font color="blue">As</font> <font color="blue">New</font> ADODB.Recordset
<font color="blue">Dim</font> st <font color="blue">As</font> <font color="blue">New</font> ADODB.Stream
<font color="blue">Dim</font> s <font color="blue">As</font> <font color="blue">String</font>
    <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">GoTo</font> errh:
    rs.<font color="blue">Open</font> sql, cnFrom, adOpenStatic, adLockBatchOptimistic
    st.<font color="blue">Type</font> = adTypeText
    st.<font color="blue">Open</font>
    rs.Save st, adPersistXML
    rs.<font color="blue">Close</font>
    s = st.ReadText
    st.<font color="blue">Close</font>
    s = Replace(s, _
        <font color="teal">"rs:basecatalog='"</font> & cnFrom.Properties(<font color="teal">"Current Catalog"</font>).Value & <font color="teal">"'"</font>, _
        <font color="teal">"rs:basecatalog='"</font> & cnTo.Properties(<font color="teal">"Current Catalog"</font>).Value & <font color="teal">"'"</font>)
    s = Replace(s, <font color="teal">"<rs:data>"</rs:data></font>, <font color="teal">"<rs:data><rs:insert>"</rs:insert></rs:data></font>)
    s = Replace(s, <font color="teal">""</font>, <font color="teal">""</font>)
    st.<font color="blue">Open</font>
    st.WriteText s
    st.Position = <font color="darkblue"><b>0</b></font>
    rs.<font color="blue">Open</font> st
    <font color="blue">Set</font> rs.ActiveConnection = cnTo
    rs.UpdateBatch
    rs.<font color="blue">Close</font>
    CopyData = True
errh:
<font color="blue">End</font> <font color="blue">Function</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5