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

Recargar datos

Hola a todos, soy nuevo en qlikview y he buscado información respecto a lo siguiente pero no he encontrado, por eso decidí postearlo acá:

Resulta que cargué una base de datos en interfase a qlikview mediante ODBC.

Y todo bien, logré hacerlo, el script que usé es similar a este:

ODBC CONNECT32 TO BDFricoTemuco (XUserId is XXXLLLYYY, XPassword is XXXLLLYYY);

Select * from clickvtemuco;

Y aquí va el primer problema, la base de datos se conecta, pero cuando quiero hacer Select mediante crear sentencia select, no muestra ningún. Lo que me obliga a manipular los campos antes en EMS antes de cargarlos a qlikview.

Pero mi problema no es ese, ya que eso lo suplo con la programación en EMS.

Mi problema es que, cuando quiero quiero recargar los datos actualizados de mi base de datos a qulikview, se generan duplicados.

ODBC CONNECT32 TO BDFricoTemuco (XUserId is XXXLLLYYY, XPassword is XXXLLLYYY);

add Select * from clickvtemuco;


ODBC CONNECT32 TO BDFricoTemuco (XUserId is XXXLLLYYY, XPassword is XXXLLLYYY);

replace Select * from clickvtemuco;

Usé por separado el comando ADD y el REPLACE, pero no sé si usé mal el script o no lo sé pero no funcionó como lo que yo quería, lo que hizo fue volver a añadir Tooooodos los datos aún cuando ya estaban antes generando redundancia.

Y lo que necesitara era que actualizara los datos añadiendo solo los nuevos datos de la base de datos


Por favor ayuda

muchas gracias desde ya


David

6 Replies
Not applicable
Author

Hola David

no estoy seguro de entiender todo pero lo que puedo decir es

si tu quieres recargar TODO el qvw no necessite ADD y REPLACE.

ADD y REPLACE son necesario si quieres recargar une partida de los data

ADD : toma los nuevos data y pone les a la fine de los antes

REPLACE : toma los nuevos data y "kill" otras

este 2 functions necessita un PARTIAL RELOAD para functionnar

Espero que mi espanol no esta muy malo.

Chris

luis_pimentel
Partner - Creator III
Partner - Creator III

Hola David,

Como te indica christian, las sentencias ADD y REPLACE solo se ejecutan cuando haces una recarga parcial (Crtl + Shift + R), no con la recarga total (Crtl + R).

Si buscas en este foro información sobre "Incremental Load" encontrarás las soluciones a tu problema.

Puedes consultar la ayuda de qlikview para mas detalles.

Un saludo

Not applicable
Author

Muchas gracias Chris por tu respuesta, tu español está bastante bien.

Entiendo lo de Partial Reload. Y ahora comprendo mejor también el funcionamiento de Add y Replace.

Mi problema es quiero:

Tomar los datos (los cuales traen tanto datos nuevos como viejos) y que inserte solo los nuevos.

Que me puede servir?

Cabe señalar además que mi base de datos carga en ODBC y no muestra en select ningún campo, tengo que añadirlos de forma manual en el sript.Sin título.jpg

Desde ya muchas gracias por tu ayuda!!!

David

Not applicable
Author

Gracias Luis,

pregunta: cómo puedo tomar los datos (los cuales traen tanto datos nuevos como viejos) y que inserte solo los nuevos.

Que script me puede servir?

Y te pregunto por el script porque la base de datos que uní a QlikV está en ODBC y no me permite seleccionar con el "crear sentencia select"

como muestra en la foto que respondí a Chris

Gracias desde ya por tu respuesta

luis_pimentel
Partner - Creator III
Partner - Creator III

Hola David,

es bastante extraño que no te permita hacer el select con el wizard. por lo que veo en tu captura, en el campo "Base de datos", no tienes nada seleccionado del menú desplegable ¿no te aparece ahí tu bbdd ?

Para hacer el load incremental que me preguntas, revisa el documento que te adjunto, está bastante bien y comenta 3 casos:

    - Solo inserciones

    - Inserciones y Actualizaciones de registros

    - Insertar, actualizar y borrar registros.

El proceso que necesitas sería algo así:

La primera carga:

    1- Un select * de toda la base de datos

    2- Guardas el resultado en un qvd

Las siguientes cargas:

    1- Cargas el qvd

    2- concatenas el qvd con un select * de la bbdd "where not exists(campoClave)"

    3- sobreescribes el qvd, y vuelta a empezar

Si además de inserciones, hai registros que se actualizan o borran, entonces se complica un poco más. MIra el documento, te ayudará.

No dudes en preguntarme si siguies teniendo problemas. Un saludo.

luis_pimentel
Partner - Creator III
Partner - Creator III

Prueba algo así (ten cuidado con la sintaxis, la escribí aquí sin probarla en qlikview, igual se me ha colado algo)

ODBC CONNECT32 TO BDFricoTemuco (XUserId is XXXLLLYYY, XPassword is XXXLLLYYY);

// PARA LA PRIMERA CARGA

Tabla1:

LOAD

    campoClave,

    campo1,

    campo2,

    campo3;

SQL Select * from clickvtemuco;

STORE Tabla1 into Tabla1.qvd (qvd);

DROP Table Tabla1;

// PARA EL RESTO DE CARGAS

Tabla1:

LOAD

    campoClave,

    campo1,

    campo2,

    campo3

From Tabla1.qvd (qvd);

Concatenate

SQL Select * from clickvtemuco

    Where not exists (campoClave);

   

STORE Tabla1 into Tabla1.qvd (qvd);

DROP Table Tabla1;