Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 10-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
en general, suponiendo que qc1 está asociado a bd1 y qc2 a bd2, y ambos tienen algo como
Código SQL [-]
select * from Socio order by codigo
, simplemente podría hacerse un recorrido de ambas tablas:

Código Delphi [-]
Procedure IgualaSocios;

  function siguientecodigo(cod : integer) : integer;
  begin
    //qsiguiente esta asociado a db2 y tiene algo como:
    //select min(codigo) from socio where codigo > :codigo
    qsiguiente.parambyname('codigo').AsInteger := cod;
    qsiguiente.open;
    try
      result := qsiguienteSIGUIENTE.AsInteger;
    finally
      qsiguiente.close;
    end;
  end;

begin
  //inserta en qc2 los que no estén de qc1
  qc1.first;
  while not qc1.eof do
  begin
    if not qc2.locate('codigo', qc1codigo.asinteger, []) then
    begin
      qc2.insert;
      qc2codigo.value := qc1codigo.value;
      //el resto de campos se copia igual
      qc2.post;
    end
    qc1.next;
  end;
  //borra de qc2 los que no esten en qc1
  qc2.first;
  while not qc2.eof do
  begin
    if not qc1.locate('codigo', qc2codigo.AsInteger, []) then
    begin
      CodigoBorrado := qc2Codigo.AsInteger;
      qc2.Delete;
      if not qc2.locate('codigo', siguientecodigo(CodigoBorrado), []) then
        qc2.Last; {no hay mas códigos}
    end;
  end;
end;

No es muy eficiente, pero si las tablas de socios no son grandes, funcionará aceptablemente bien.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:07:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi