Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Alguien sabe alguna forma de poder actualizar los datos de un qvd, parecido a realizar un update en sql.
Necesito hacerle un update a una tabla que reside en un qvd con otros valores, pero todavia no he encontrado la forma.
Si alguien me pudiese dar una luz acerca de como realizar esto.
Saludos
La única opción que tienes es leer del QVD, hacer los cambios necesarios y volver a escribir el QVD.
Ok muchas gracias, voy a leer al respecto, es algo que no tengo muy claro. si tuvieses por alli algun ejemplo seria excelente.
saludos.
Hola,
en el manual de referencia hablan algo al respecto de la utilización de archivos QVD para carga incremental. Hay 4 posibles escenarios
- Caso 1: Anexar sólo.El caso más simple es el de los archivos de registro, que sólo se anexan.
Ejemplo de script:
Buffer (Incremental) Load * From LogFile.txt (ansi,txt, delimiter is ',embeddedlabels);'
- Caso 2: Insertar sólo. (No Actualizar o Borrar).Si los datos residen en una base de datos que no es un simple archivo de registro, el enfoque del caso 1 no funciona. El problema puede no obstante resolverse con una pequeña cantidad de trabajo extra.
Ejemplo de script:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(BeginningThisExecTime)#;
Concatenate
LOAD PrimaryKey, X, Y FROM File.QVD;
STORE QV_Table INTO File.QVD;
- Caso 3: Insertar y Actualizar. (No Borrar) En este caso los datos de registros previamente cargados pueden haber sido modificados entre las diversas ejecuciones de script.
Ejemplo de script:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#;
Concatenate
LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT Exists(PrimaryKey);
STORE QV_Table INTO File.QVD;
- Caso 4: Insertar, Actualizar y Borrar El caso más difícil de manejar se da cuando los registros han sido realmente eliminados de la base de datos fuente entre ejecuciones de script.
Ejemplo de script:
Let ThisExecTime = Now( );
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(ThisExecTime)#;
Concatenate LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT EXISTS(PrimaryKey);
Inner Join SQL SELECT PrimaryKey FROM DB_TABLE;
If ScriptErrorCount = 0 then
STORE QV_Table INTO File.QVD;
Let LastExecTime = ThisExecTime;
End If
Lograste resolverlo???