9 Replies Latest reply: Mar 17, 2014 10:53 AM by Marta Lopez Martin RSS

    Reload in others PCs -- failed ODBC

      Tengo mi qvw con la conexion a base de datos:

       

           ODBC CONNECT32 TO [INTEGRA;DBQ=INTEGRA] (XUserId is GWHdZUZNULZOGZFMMH, XPassword is fXIZdUZNULZOGZFMHD);

       

      Paso el documento a un cliente que tiene el mismo usuario y misma base de datos y al hacer la recarga directamente da error de conexión a la base de datos.

       

      Si el cliente abre el documento con el Qlikview destock y realiza él la conexión se le crea esta linea en el script:

       

           ODBC CONNECT32 TO [INTEGRA ] (XUserIdis BLRWYUZNULZOGZFMbA, XPasswordis XMbARBRNBTdKWEZNULZOGZFMSBMCTZcR);

       

      Y ya le conecta correctamente.

       

      ¿Por qué estás diferencias? Si el usuario y base de datos es la misma ¿no debería funcionar la conexión con el documento original que le he mandado yo?

       

      Saludos y gracias.

        • Re: Reload in others PCs -- failed ODBC
          Peter Turner

          Hello,

           

          I think the problem is you need to make the ODBC connection on the client computer as it does not exist.

          Or you use OLEDB connection then it should work on any computer.

           

          Creo que el problema es que tienes que hacer la conexión ODBC en el equipo cliente como no existe.

          O utiliza conexión OLEDB y debería funcionar en cualquier ordenador.

           

          Thanks / Gracias

          • Re: Reload in others PCs -- failed ODBC
            Srikanth P

            Hi Marta, Generally ODBC connection uses either SYSYTEM DSN or USER DSN.

             

            I believe, the other Laptop uses USER DSN and thats connection should be applicable to that USER only.

             

            Please use OLEDB or create USER DSN for ODBC Connection.

            • Re: Reload in others PCs -- failed ODBC
              Massimo Grossi

              create on client computer the same odbc connection (DSN) with the same driver you use

               

              or workaround

              use an include file for the connection so the user can use his working connection and you your working connection;

              there are a lot of post about it, example

              Re: Include scripts

               

              or post the 2 odbc screenshot

              • Re: Reload in others PCs -- failed ODBC
                Miguel Angel Baeyens de Arce

                Hola Marta,

                La conexión ODBC debe estar creada en cada equipo donde el QVW se vaya a recargar. Para ello, primero de todo, deberás instalar el driver correspondiente para poder extraer datos de la fuente de información.

                Después deberás crear una conexión ODBC en el ordenador del cliente con el mismo nombre que la tuya para que pueda recargar.

                La versión del driver debe ser la misma, si te fijas las líneas tuya y la de tu cliente son distintas, ya que tú has de especificar DBQ y el cliente no.

                Un saludo,

                Miguel

                  • Re: Reload in others PCs -- failed ODBC

                    El ODBC está creado en el otro equipo, con el mismo nombre y mismo usuario y como DSN de Sistema. Voy a comprobar que la versión del driver sea la misma, ¿tiene que ser la misma?

                     

                    Si la contraseña en mi equipo y en la del cliente es distinta no pasa nada, ¿verdad?

                     

                    Muchas gracias a todos.

                      • Re: Reload in others PCs -- failed ODBC
                        Miguel Angel Baeyens de Arce

                        Hola Marta,

                        El driver tiene que ser compatible, aunque no sea el mismo, pero compatible entre los dos. Cuando sale una nueva versión de un producto no siempre sus drivers son compatibles con versiones anteriores.

                        Por otra parte sí, el password debe ser idéntico, en caso contrario al no funcionar la combinación usuario/contraseña, el sistema pregunta.

                        Una forma de ahorrarte tener que modificar usuario y password en cada equipo es incluirlo dentro de la definición del DSN de sistema, de esta forma, la sentencia de conexión será algo como:


                        ODBC CONNECT32 TO "INTEGRA"; // el user y pass los coge del DSN


                        Un saludo,

                        Miguel

                        • Re: Reload in others PCs -- failed ODBC

                          En esto ya me pierdo un poco, ¿donde se incluye el usuario y pwd dentro del DSN de sistema? Esto sería lo ideal, porque los documentos se mandarán a 15 o 20 clientes distintos y cada uno tendrá su pwd distinto.

                           

                          El documento que mandemos tendrá que funcionar tal cual en los 20 clientes, algunos tendrán bd ORACLE y otros SQL SERVER. La base de datos se llama en todas igual.

                           

                          Gracias.

                            • Re: Reload in others PCs -- failed ODBC
                              Miguel Angel Baeyens de Arce

                              Hola Marta,

                              En la definición de la conexión, en el propio interfaz del driver, siempre tienes una opción de almacenar contraseña y usuario, de la misma forma que tienes opción a probar la conexión. No tengo disponibles ahora mismo interfaces para Oracle o SQL Server, pero sé que se puede hacer.

                              No obstante, otra opción es incluir ese XUserId y XPassword en variables, de forma que el nombre del DSN sea idéntico en ambas máquinas, y los usuarios se lean de ficheros externos. De hecho esto es bastante habitual cuando trabajas con varios entornos (dev, test, pre, pro) y buena práctica.

                               

                              Creas un fichero de texto llamado "credentials.qvs" con el siguiente código (es un ejemplo):

                               

                              SET vXUserId = 'XUserIdScrambledHere';
                              SET vXPassword = 'XPasswordScrambledHere';
                              
                              

                               

                              Y en el fichero QVW, dentro del script añades:

                               

                              $(include=credentials.qvs);
                              ODBC CONNECT32 TO [INTEGRA] (XUserId is $(vXUserId), XPassword is $(vXPassword));
                              
                              

                               

                              No te fies de la sintaxis, que probablemente necesite alguna comilla más, fíjate en la idea. Lo importante es que el fichero "credentials.qvs" existirá localmente en cada equipo que vaya a realizar recargas y el propio usuario podría modificarlo si dispusiera de permisos sobre el fichero.

                              Un saludo,

                              Miguel