el 02-28-2013 05:18 AM
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:
-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.
¡Resuelto! Ir a solución.
el 02-28-2013 07:11 AM
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.
el 02-28-2013 08:22 AM
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,
el 02-28-2013 08:27 AM
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,
el 02-28-2013 09:08 AM
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
el 02-28-2013 09:26 AM
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
el 02-28-2013 10:06 AM
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.
Saludos,
el 02-28-2013 10:38 AM
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,
el 02-28-2013 12:14 PM
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,
el 03-05-2013 06:42 AM
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,