PDA

Ver la Versión Completa : capacidad del tquery?


nextor
27-05-2010, 17:54:05
Hola de nuevo amigos del mejor foro de delphi!!

Primera mente quiero agradecer por toda su ayuda, ya que por medio de esta pagina he solucionado muchos problemas.

pero mi problema es el siguiente: en un proyecto de delphi tengo un form con los siguientes componentes:
Table1: TTable;
Table2: TTable;
Database1: TDatabase;
Database2: TDatabase;
Button1: TButton;
Query1: TQuery;
Query2: TQuery;

lo que estoy tratando de hacer es que de una base de datos pasar datos de una tabla a otra base de datos mediante un querys
algo asi:

procedure TForm1.Button1Click(Sender: TObject);
var cont:integer;
begin
cont:=0;
showmessage('iniciado');
with database2 do
begin
Close;
Open;
end;
with query2 do
BEGIN
close;
SQL.Text:='select * from vw_movimientos';
open;
first;
database1.Close;
database1.Open;
showmessage(IntToStr(RecordCount));
for cont:=0 to RecordCount -1 do
begin
query1.Close;
query1.SQL.Text:='insert into vw_movimientos(fecha) values (''' +fields[0].AsString + ''') ';
query1.ExecSQL;
query1.Close;
query2.Next;
end;
database1.Close;
close;
end ;
showmessage('finalizado');
end;

pero solo me copia 65,904 registros de 2,300,000 alguien tiene idea de por que pasa esto?

Gracias

elarys
27-05-2010, 19:07:12
que base de datos estas usando

igual echale un ojo a esto
http://www.google.com.ar/#hl=es&q=+site:clubdelphi.com+delphi+base+de+datos+copiar+una+tabla+a+otra&ei=raf-S5ueIcH88AbP8aSfDQ&sa=X&oi=forum_cluster&resnum=1&ct=more-results&ved=0CBsQrQIwAA&fp=b32c21fd806ac625

Casimiro Notevi
27-05-2010, 20:00:56
Si no encuentras la solución en los enlaces que ha indicado elarys, entonces danos más información y procuraremos ayudarte, aunque en principio veo varias cosas "raras" en tu código.

nextor
27-05-2010, 22:15:02
gracias por responder

estoy utilizando el ms sql server y mysql, estoy pasando datos de mysql a sql server

Gracias de nuevo

Faust
28-05-2010, 01:10:13
Saludos, he estado viendo tu código y para recorrer tu tabla origen sería mejor hacer un while, te incluyo un ejemplo:


procedure TForm1.Button1Click(Sender: TObject);
var cont:integer;
begin
cont:=0;
showmessage('iniciado');
with database2 do
begin
Close;
Open;
end;
with query2 do
BEGIN
close;
SQL.Text:='select * from vw_movimientos';
open;
first;
database1.Close;
database1.Open;
showmessage(IntToStr(RecordCount));
{ for cont:=0 to RecordCount -1 do
begin
query1.Close;
query1.SQL.Text:='insert into vw_movimientos(fecha) values (''' +fields[0].AsString + ''') ';
query1.ExecSQL;
query1.Close;
query2.Next;
end;
}

while not Eof do
begin
query1.Close;
query1.SQL.Text:='insert into vw_movimientos(fecha) values (''' +fields[0].AsString + ''') ';
query1.ExecSQL;
query1.Close;
Next
end;

database1.Close;
close;
end ;
showmessage('finalizado');
end;

Y así no te limita ni el conteo... inténtalo y nos cuentas.