Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Problema Labview-Base de Datos

¡Resuelto!
Ir a solución

Buenas,

 

Estoy intentando usar el connectivity toolkit para Base de Datos de Labview, pero me estoy volviendo loco. Os comento los pasos que he hecho:

 

  • Me he descargado el SQL server 5.6.10.1 y lo he instalado sin ningún problema.
  • Posteriormente he instalado el conector odbc 5.2.4 para win 32 (ya que mi sistema opera para 32 bits)
  • En administrador de herramientas y en sistema DNS, selecciono "add", el driver en cuestion y gestiono el asistente de conexión como localhost, con un nombre de usuario y contraseña.Cuando hago el Test, me sale una conexión satisfactoria.
  • Luego en Labview, gestiono el programa que adjunto "Prueba_Base de Datos.vi" y defino en Tools>Create Data Link>Connection>Use --> data source name, User name y password:los definidos anteriormente; ejecuto el Test Connection y me da satisfactorio.
  • Al ejecutar el programa en labview, me pide continuamente el Data Link configuracion y me da el siguiente error:

 

-2147467259 occurred at NI_Database_API.lvlib.B Tools Open Connec (String).vi->NI_Database_API.lvlib.B Tools Open Connec (Path).vi->Prueba_Base de Datos.vi

ossible reason(s):
ADO Error: 0x80004005   Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in NI_Database_API.lvlib.B Tools Open Connec (String).vi->NI_Database_API.lvlib.B Tools Open Connec (Path).vi->Prueba_Base de Datos.vi

 

Me podeis por favor ayudar con esto??

Un saludo y muchas gracias.

 

0 kudos
Mensaje 1 de 23
7.971 Vistas

Además, he estado creando un archivo .udl, mediante el notepad cambiandole la extensión, y al configurar sus Data Link Propierties, he seleccionado "Microsoft OLE DB Provider for ODBC Drivers" y en conexión he expecificado la configuración de mi conexion creada anteriormente y he introducido el usuario y password.

A la hora de comprobar el "Test Connection" si no selecciono catalog me da exitoso, pero cuando determino uno de los que me salen, me da "Test connection failed because of an error in initializing provider. Catastrophic failure".

 

Agradecería que por favor me ayudaseis con esto.

0 kudos
Mensaje 2 de 23
7.967 Vistas

Hola,

 

      Puedes probar hacer la conexión por string, según la base de datos que utilices y el tipo de conexión aquí tienes los distintos ejemplos http://www.connectionstrings.com/

 

      Por otra parte indica cual es tu sistema operativo y versión de LabVIEW, ya que los de 64 bits manejan dos conectores ODBC y a veces agregamos la conexión en el de 64bits pero el LabVIEW usa el de 32 donde no hemos definido la conexion.


Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 3 de 23
7.961 Vistas

Hola,

 

       Otra cosa si tu base de datos es MySQL estas seleccionando mal el driver, no recuerdo el nombre del correcto pq no lo tengo instalado, y si es MSSQL tambien ya que deberias usar SQL Native Client.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 4 de 23
7.959 Vistas

Hola Luis,

 

Gracias por contestar tan rápido.

Tengo un sistema operativo de 32 bits con Windows 7, y mi versión de labview es 2009.

Tengo instalado el MySQL server, con los drivers "connector odbc 5.2.4" para win 32.

 

He estado mirando y pensaba que estos eran los correctos.

He intentado hacer la conexión por string (te refieres desde labview en Tools-->Create Data Link o   en el archivo .udl que me he creado? aunque en ambos me sucede lo mismo), configuro mediante "Machine Data Source" y configurando para la conexión previamente definida en mi MySQL server, pero me sigue saliendo el error que te comentaba anteriormente "Test connection failed because of an error in initializing provider. Catastrophic failure", sólo si lo dejo sin seleccionar el initial catalog me sale exitoso. 

 

Sin embargo al ejecutar el programa en labview el primer bloque "Tools Open Connection" me da "OK" y a partir de siguiente me sale el error -2147217865 .

Possible reason(s):
ADO Error: 0x80040E37
Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 5.2(w) Driver][mysqld-5.6.10]Table 'test.test' doesn't exist in NI_Database_API.lvlib:Conn Execute.vi->Prueba_Base de Datos.vi

 

La verdad que ya nosé que más probar 😞

Gracias por tu ayuda

 

0 kudos
Mensaje 5 de 23
7.953 Vistas

He probado a configurar desde "Data Link Properties"> "microsoft OLE DB Provider for ODBC Drivers">"Use connection string"> "Machine Data Source" y aqui en vez de seleccionar mi conexion de MySQL configurada en un principio, selecciono "Lab VIEW--System", me sale una ventana de configuración donde introduzco las variables Login/password según lo que había definido en MySQL configuración,

y en la pestana de "Database" seleccionó la base de datos que quiero usar, de esta manera al seleccionar en "initial catalog", me da el "Test Connection" exitoso, pero al ejecutar el programa en labview vuelvo de nuevo al error -2147217908 occurred at NI_Database_API.lvlib:Conn Execute.vi->Prueba_Base de Datos.vi

ADO Error: 0x80040E0C

Exception occured in Microsoft OLE DB Provider for ODBC Drivers: Command text was not set for the command object. in NI_Database_API.lvlib:Conn Execute.vi->Prueba_Base de Datos.vi

0 kudos
Mensaje 6 de 23
7.949 Vistas

Hola,

 

      Lo primero es que ya te conectaste, pq cuando te da el error "able 'test.test' doesn't exist" significa que ya ocurrio la conexion, probablemente tienes algun error en el nombre de la base de datos o de la tabla, o no has creado la tabla.

 

       Cuando me referia por string, me referia a estos string MySQL Connector/ODBC 5.1 claro que ya la version seria 5.2 y por lo que estoy viendo en el nombre lleva una w. Asi que donde dice {MySQL ODBC 5.1 Driver} deberías colocar {MySQL ODBC 5.2w Driver}.

 

      Es la misma caja de conexión, pero en lugar del path le puedes pasar un string (connection information), ya que es un VI polimorfico.

 

connection information specifies the connection string to use to connect to the database. For User and System ODBC Data Sources, provide the name of the data source as configured in the Windows ODBC Administrator. You also can specify a path to a UDL or DSN file by prefixing the path with file name= or filedsn=, respectively. 

 MySQL string connection.png

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 7 de 23
7.944 Vistas

Hola Luis,

 

Ya había probado también lo que me comentas y me seguía dando el mismo problema.

La base de datos la tengo creada, y la referencio cuando configuro en labview>Create Data Link, esto es correcto o debería de referenciarla en algún otro lado, o a qué puede ser debido este error??

He intentado hacerlo también mediante la librería LabSQL-1.1a, y me sucede exactamente el mismo problema.

 

Por otro lado, si en vez de pasarle estos parametros, le paso directamente el path donde tengo mi fichero .udl configurado con la ruta de mi base de datos, el programa me funciona sin ningún problema, luego debo de estar configurando algo mal en el otro caso...pero la verdad que no lo tengo nada claro que puede ser.

Si se te ocurre algo, me comentas por favor.

 

Gracias y un saludo,

 

 

 

0 kudos
Mensaje 8 de 23
7.940 Vistas
Solución
Aceptado por el autor del tema juanfer23

Hola,

 

       Ok la base de datos la tienes creada, pero tienes creada la tabla test dentro de la base de datos test? En tu código veo que usas un nombre de tabla "fetchdata" pero en el error dice que estas en algun lado tratando de acceder una tabla llamada "test".

 

       Para ver tus tablas puedes usar "DB Tools List Tables.vi", y si ya manejas bien y tienes experiencia con SQL te recomendaria que uses las funciones de la paleta advanced como por ejemplo "DB Tools Execute Query.vi".


Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 9 de 23
7.934 Vistas

Muchas Gracias por la ayuda.

Ya estoy trabajando con las distintas opciones de la DB toolkit y trasteando un poco.

El caso es que me surge una duda en cuanto a la lectura/escritura de tablas de Access a Labview, hay alguna manera de gestionarlo de manera general, sin conocer el número de columnas que tiene nuestra tabla?

Adjunto un ejemplo de lo que intento decir.

 

y por otro lado, se puede gestionar desde labview el cambio del nombre de columnas de la base de datos o su lectura?

muchas gracias, 

0 kudos
Mensaje 10 de 23
7.912 Vistas