6 Replies Latest reply: Jan 30, 2014 3:02 AM by Luis Pimentel RSS

    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

        • Re: Recargar datos
          christian juillard

          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

            • Re: Recargar datos

              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

            • Re: Recargar datos
              Luis Pimentel

              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

                • Re: Recargar datos

                  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

                    • Re: Re: Recargar datos
                      Luis Pimentel

                      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.

                      • Re: Re: Recargar datos
                        Luis Pimentel

                        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;