DE MYSQL PARA MYSQL

 Tópico anterior Próximo tópico Novo tópico

DE MYSQL PARA MYSQL

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#371373 - 14/04/2011 22:05:13

JONESPARIS
ERECHIM
Cadast. em:Fevereiro/2006


olá pessoal!

Estou tentando passar os dados de uma tabela chamada clientes do banco de dados X para uma tabela igual mas para o banco de dados Y, via código.
fiz duas conexões, mas me faltou força he he he he.

estou usando o seguinte;


        Dim rscc As ADODB.Recordset
        Dim sql As String
        Set rscc = New ADODB.Recordset
        rscc.CursorLocation = adUseServer
        
        Dim rscc2 As ADODB.Recordset
        Set rscc2 = New ADODB.Recordset
        rscc2.CursorLocation = adUseServer
        
        rscc.Open "select * from clientes", conn, adOpenStatic, adLockOptimistic, adCmdText
        
        rscc2.Open "insert into clientes select * from contatos"??????????????????  


como poderei passar o resultado da pesquisa do rscc para o rscc2??? é possível?

abraço



Jones Paris

#371378 - 14/04/2011 22:40:05

HIDDEN
GOIANIA
Cadast. em:Julho/2009


Não precisa criar duas conexões. Faça o seguinte:

Dim Tabela As New ADODB.Recordset
Dim TabelaDestino As New ADODB.Recordset

TabelaDestino.Open "SELECT bd1.tabela1.campo1, bd1.tabela1.campo2 FROM db1.tabela1", Conn, adOpenStatic, adLockOptimistic

With Tabela
     .Open "SELECT bd2.tabela1.campo1, bd2.tabela1.campo2 FROM db2.tabela1", Conn, adOpenStatic, adLockOptimistic
     If Not .Eof Then
        .MoveFirst
        Do While Not .Eof
           TabelaDestino.AddNew
           TabelaDestino!Campo1 = !Campo1
           TabelaDestino!Campo2 = !Campo2
           TabelaDestino.Update
           .MoveNext
        Loop
     End If
End With
          
    
Aonde bd1 e bd2 são os dois bancos.




#371403 - 15/04/2011 08:53:58

JONESPARIS
ERECHIM
Cadast. em:Fevereiro/2006


gostaria de não usar o Loop, por questão de desempenho, mas muito obrigado por enquanto hidden, será que é possível sem o Loop?

Jones Paris

#371429 - 15/04/2011 10:17:46

HIDDEN
GOIANIA
Cadast. em:Julho/2009


Eu desconheço outra forma. Mas em relação a performance, nem me preocupo muito. O MySQL possui um mecanismo bastante rápido. E qualquer processador P4 acima da conta do recado.

Fiz um teste aqui agora, preenchendo um grid (não ciente de dados) com 242.458 registros (uma tabela com 14 campos). Carregou em 1,0899 segundos. E estou utilizando um notebook com AMD Turion 64 de 1.9 GHz (4GB Ram).



Resposta escolhida #371431 - 15/04/2011 10:19:15

HIDDEN
GOIANIA
Cadast. em:Julho/2009


Mesmo que houvesse uma forma tipo

rscc2.Open "insert into clientes select * from contatos"


Certamente o mecanismo do banco de dados utilizaria um loop para realizar a tarefa.



#371501 - 15/04/2011 20:25:40

JONESPARIS
ERECHIM
Cadast. em:Fevereiro/2006


Blz, no momento vou usar o Loop, Muito obrigado Hidden

Jones Paris

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JONESPARIS em 15/04/2011 20:25:55