Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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.
Desde ya muchas gracias por tu ayuda!!!
David
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
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.
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;