Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Que base de datos usas?

Lo mejor es usar sentencias SQL!

Código SQL [-]
Insert into TablaA
  (Select * from TablaB 
   Where TablaB.CampoID<>TablaA.CampoID)
Sino utiliza Locate para buscar el campo llave.

El codigo b:=b no tiene sentido, quita eso!
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 27-06-2007 a las 01:59:27.
Responder Con Cita
  #2  
Antiguo 27-06-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por vtdeleon
Que base de datos usas?

Lo mejor es usar sentencias SQL!


Código SQL [-]Insert into TablaA
(Select * from TablaB
Where TablaB.CampoID<>TablaA.CampoID)


Sino utiliza Locate para buscar el campo llave.

El codigo b:=b no tiene sentido, quita eso!
Uso Access, y no uso la sentencia sql, porque las tablas son diferentes, solo comparten 3 campos, cuyos FieldNames son diferentes. Lo que no entiendo, es porque me repite uno de los valores.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 27-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Haber si esto te puede servir

Código Delphi [-]
function TForm1.No_Existe(Dato:String):Bool;
begin
  Query1.Close; 
  Query1.SQL.Text := 'SELECT * FROM ESTADISTICAS WHERE VALOR = :dato';
  Query1.ParamByName('Dato').AString := Dato;
  Query1.Open;
  If RecordsCount = 0 then
     Result := True
  else Result := False;
end;

........
........
While not QAux.EoF do begin
   if No_Existe(QAux.FieldByName('conceptoDEBE').AsString) then begin
      QEstadisticas.Insert;
      try
        QEstadisticas.FieldByName('categoria').AsString:='Gastos Generales';
        QEstadisticas.FieldByName('valor').AsString:=QAux.FieldByName('conceptoDEBE').AsString;
        QEstadisticas.FieldByName('cantidad').AsInteger:=QAux.FieldByName('cantidad').AsInteger;
        QEstadisticas.FieldByName('subtotal').AsCurrency:=QAux.FieldByName('importe').AsCurrency;
        QEstadisticas.Post;
      except
        QEstadisticas.Cancel;
      end;
   end;
   QAux.Next;
end;

Aunque lo hice al aire porque no tengo mi Delphi, puede haber algun error.

Salud OS.

Edito: Se me adelanto sara2005, y me parece una muy buena idea la del LOCATE.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 27-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Uso Access, y no uso la sentencia sql,
Mejor aun, y mas razon para usar las sentencias.
Cita:
porque las tablas son diferentes, solo comparten 3 campos, cuyos FieldNames son diferentes
Eso no importa.

Danos detalles de las tablas, los campos relacionados, y el campo Id (el cual no queires que se repita).
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 27-06-2007
seara2005 seara2005 is offline
Miembro
 
Registrado: ago 2003
Ubicación: Colombia
Posts: 63
Poder: 21
seara2005 Va por buen camino
Copiar Registro de una tabla a otra sin repetirse

Prueba algo así como esto

Código Delphi [-]
procedure TransferirDatos(Sender: TObject);
begin
   QAux.First;
  While Not(QAux.Eof) do
    Begin
       If Not(QEstadisticas.Locate('Valor',QAuxConceptoDebe.Value,[loCaseInsensitive])) then
         Begin
            QEstadisticas.Insert;
            try
              QEstadisticas.FieldByName('categoria').AsString:='Gastos Generales';
              QEstadisticas.FieldByName('valor').AsString:=QAux.FieldByName('conceptoDEBE').AsString;
              QEstadisticas.FieldByName('cantidad').AsInteger:=QAux.FieldByName('cantidad').AsInteger;
              QEstadisticas.FieldByName('subtotal').AsCurrency:=QAux.FieldByName('importe').AsCurrency;
              QEstadisticas.Post;
            except
              QEstadisticas.Cancel;
            end;
         End;
      QAux.Next;
    End;
end;
__________________
Saludos

Seara2005
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
Como copiar los datos de una tabla a otra Shidalis Varios 2 21-07-2005 14:34:32
Copiar Tabla de una BD a Otra BD en Firebird pcicom SQL 3 14-02-2005 16:31:15
Como Copiar Un Mismo Registro De Una Tabla A Otra En Delphi NaZi_DjInN Tablas planas 2 30-09-2004 22:13:17
Copiar el contenido de una tabla en otra.. ElCherchu Firebird e Interbase 2 31-10-2003 17:11:28


La franja horaria es GMT +2. Ahora son las 21:03:15.


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