Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Como actualizo datos en una tabla Firebird

Buenas tardes a todos.
Estoy encallado en un tema, a ver si alguien pe puede desencallar.
Tengo el siguientre procedimiento que me importa a una tabla temporal los registros de un fichero txt. Hasta aquí correcto.
Luego con una consulta busco los registros que no estan en la tabla principal para añadirlos a la misma, la consulta me devuelve los valores correctos.
Lo que necesito ahora es hacer la adición de estos registros a la tabla principal, aquí es donde me encallo, no se como hacerlo

Código Delphi [-]
 
procedure TF_Clubs.Importa1Click(Sender: TObject);
var
        F: TIBInputDelimitedFile;
begin
        F_Confirmacio := TF_Confirmacio.Create(self);
        F_Confirmacio.Label1.Caption := 'Importem arxiu';
        try
                if F_Confirmacio.ShowModal = mrok then
                begin
                        with BorraTemp do
                        begin
                                Close;
                                UnPrepare;
                                Sql.Text := 'DELETE FROM RE0004T';     //Borro la tabla temporal
                                Prepare;
                                Open;
                        end;
                        F_ModulDades.Clubs_Temp.Close;
                        F_ModulDades.Clubs_Temp.Open;
                        F_ModulDades.Clubs_Temp.Append;       //Inserto los txt a la tabla temporal
                        IBSQLImporta.SQL.Text := 'Insert into RE0004T values(:CODI_CLUB, :CLUB)'; 
                        F := TIBInputDelimitedFile.Create;
                        try
                                F.ColDelimiter := ';';
                                if OpenDialog1.Execute then
                                begin
                                        F.Filename := OpenDialog1.FileName;
                                end;
                                IBSQLImporta.BatchInput(F);
                        finally
                                F.Free;
                        end;
                        SQLActualitza.Close;  // busqueda de los registros a añadir
                        SQLActualitza.Open;
                        F_ModulDades.Clubs.Close;
                        F_ModulDades.Clubs.Open;
                        F_ModulDades.Clubs.Append;  //Tabla donde se deben añadir los registros
                        Update??  // Aquí es donde no se que código poner
                end;
        finally
                F_Confirmacio.Free;
        end;
        ShowMessage('Fitxer Actualitzat');
end;

Como siempre Delphi 6 (migrando a XE2) y FB 1.5

Saludos
Responder Con Cita
  #2  
Antiguo 16-01-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola. Me parece que falta asignar los valores a las variables

:CODI_CLUB, :CLUB en esta sentencia

Código Delphi [-]
IBSQLImporta.SQL.Text := 'Insert into RE0004T values(:CODI_CLUB, :CLUB)'

y despues el IBSQLImporta.ExecQuery

Repito. Me parece o falta algo mas de código o bien ¿Donde lo hace?
Responder Con Cita
  #3  
Antiguo 16-01-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 18
jafera Va por buen camino
Cita:
Empezado por MartinS Ver Mensaje
Hola. Me parece que falta asignar los valores a las variables

:CODI_CLUB, :CLUB en esta sentencia


Código Delphi [-]IBSQLImporta.SQL.Text := 'Insert into RE0004T values(:CODI_CLUB, :CLUB)'



y despues el IBSQLImporta.ExecQuery

Repito. Me parece o falta algo mas de código o bien ¿Donde lo hace?
Se ejecuta aquí

IBSQLImporta.BatchInput(F);

Pero este no es el problema, el fichero se genera correctamente.
Lo que me pasa es que luego lanzo la consulta para saber que registros no existen, me encuentra 2, 3 o 25 registros y los quiero añadir a la tabla principal, ahí es donde no se tratar como el resultado de la consulta sqlactualitza y pasarlo (añadirlo) a la tabla principal

Gracias
Responder Con Cita
  #4  
Antiguo 16-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no he entendido mal, puedes recorrer los registros que te ha devuelto e ir guardándolos en la base de datos.
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
Como actualizo con DataSetProvider? felixgo Conexión con bases de datos 1 11-01-2011 18:16:22
Como actualizo los datos, si ademas realizo un calculo. caifan_0883 SQL 2 10-01-2011 22:19:14
como actualizo el kernel? Robert01 Linux 2 02-11-2008 21:01:24
Error cuando actualizo una tabla en SQL liborio Conexión con bases de datos 1 10-01-2007 19:52:03
¿como actualizo Qreport? Alfredo Impresión 2 08-03-2004 22:51:06


La franja horaria es GMT +2. Ahora son las 00:56:54.


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