DE MYSQL PARA MYSQL

JONESPARIS 14/04/2011 22:05:13
#371373
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

HIDDEN 14/04/2011 22:40:05
#371378
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.
JONESPARIS 15/04/2011 08:53:58
#371403
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?
HIDDEN 15/04/2011 10:17:46
#371429
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).
HIDDEN 15/04/2011 10:19:15
#371431
Resposta escolhida
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.
JONESPARIS 15/04/2011 20:25:40
#371501
Blz, no momento vou usar o Loop, Muito obrigado Hidden
Tópico encerrado , respostas não são mais permitidas