Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Borrar informacion

Buenas.

Alguien sabe como hacer un rollback a datos generados en un QVD.

Tengo un QVD que guarda cierta informacion incluida la historica, los procesos que hoy se tienen planchan toda la informacion a diario, lo que pretendo es crear cargas incrementales, pero me tope con el problema del borrado.

Ejemplo:

Tengo informacion cargada de las ventas desde el anio 2000 a la fecha en un *.qvd, este archivo se actualiza a diario con los nuevos registros de las ventas, entonces si yo cargo el dia 07/06/2012 y posteriormente tengo la necesidad de borrarlo, como puedo hacer para truncar esta informacion del *.qvd.

Saludos,

Alberto

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hola Alberto,

No me queda claro si lo que quieres es eliminar por completo una línea de información o susituirla por información más actualizada.

En el primer caso, el script debería ser algo así como:

DatosActuales:

LOAD *

FROM Fichero.qvd (qvd)

WHERE Date(Fecha) <> Date('01/01/2012');

// ahora se guarda la tabla sin esos datos en el mismo fichero

STORE DatosActuales INTO Fichero.qvd (qvd);

En el segundo caso, necesitarás un campo clave, o una clave compuesta con la que puedas identificar qué registro es el que quieres eliminar.

// Carga los datos nuevos primero

DatosActualizados:

LOAD *;

SQL SELECT *

FROM Clientes;

// Carga sólo los datos que no tengan que actualizarse, y modifica los que esten actualizados por num cliente

DatosTotales:

CONCATENATE (DatosActualizados) LOAD *

FROM Fichero.qvd (qvd)

WHERE NOT EXISTS (NumCliente);

// La tabla DatosActualizados tiene tanto los nuevos como los antiguos, actualizados

// Sobreescribe el fichero original con todos los datos: antiguos y nuevos actualizados
STORE DatosActualizados INTO Fichero.qvd (qvd);

Espero que te sirva.

Miguel

View solution in original post

1 Reply
Miguel_Angel_Baeyens

Hola Alberto,

No me queda claro si lo que quieres es eliminar por completo una línea de información o susituirla por información más actualizada.

En el primer caso, el script debería ser algo así como:

DatosActuales:

LOAD *

FROM Fichero.qvd (qvd)

WHERE Date(Fecha) <> Date('01/01/2012');

// ahora se guarda la tabla sin esos datos en el mismo fichero

STORE DatosActuales INTO Fichero.qvd (qvd);

En el segundo caso, necesitarás un campo clave, o una clave compuesta con la que puedas identificar qué registro es el que quieres eliminar.

// Carga los datos nuevos primero

DatosActualizados:

LOAD *;

SQL SELECT *

FROM Clientes;

// Carga sólo los datos que no tengan que actualizarse, y modifica los que esten actualizados por num cliente

DatosTotales:

CONCATENATE (DatosActualizados) LOAD *

FROM Fichero.qvd (qvd)

WHERE NOT EXISTS (NumCliente);

// La tabla DatosActualizados tiene tanto los nuevos como los antiguos, actualizados

// Sobreescribe el fichero original con todos los datos: antiguos y nuevos actualizados
STORE DatosActualizados INTO Fichero.qvd (qvd);

Espero que te sirva.

Miguel