Call us! 512-349-0334 or (877) INDUSOFT

Solución de Problemas de Base de Datos en Software HMI InduSoft Web Studio

La interface de la Base de Datos de InduSoft Web Studio provee una serie de herramientas poderosas que le ayudará a identificar problemas de configuración con Bases de Datos. Si usted tiene problemas de interface con una base de datos, se sugiere que primero habilite los mensajes de base de datos en la ventana de registros (Logwindow). Usted puede hacerlo siguiendo los pasos a continuación:

  1. En el ambiente de desarrollo de InduSoft Web Studio, estar seguro que se muestre la ventana “Output” (la ventana “Output” debe estar seleccionado en la pestaña Ver).
  2. Hacer un clic derecho en la ventana “Output” (Por lo general está ubicado en la esquina inferior derecha del ambiente de desarrollo), y luego hacer clic en “Settings” del menú contextual .

troubleshooting1

  1. En el cuadro de “Log Settings”, revisar que la opción “Database Messages” se encuentre seleccionada.

Figure 1. Habilitando el “Database Messages”.

troubleshooting2

Después de habilitar esta opción, la ventana “Output” mostrará mensajes de error relacionados a la Base de Datos. La sección FAQ (Preguntas frecuentes) vista en la parte inferior, muestra una lista de errores comunes que usted puede ver en la ventana “Output”.

PREGUNTAS GENERALES

P: He configurado mi base de datos, pero los objetos evaluados en runtime (Alarma, Trend y Eventos) no se están guardando en la base de datos. Yo sólo puedo ver el siguiente mensaje de error en la ventana “Output”:

Database: Error: Error to add new register[CMD_ADD].

R: Muchos de los errores de base de datos mostrados en la ventana “Output”, por lo general son seguidos por alguna información adicional como la ejecución de comandos SQL, la cadena de conexión y el nombre de la tabla asignada. Los mensajes de error como se describe en lo anterior, usualmente muestra información a detalle. Por ejemplo, si su tarea de Trend falla al agregar un registro en la base de datos por cable desconectado, entonces recibirá un mensaje de error de red. Si la tarea trata de agregar más registros antes del tiempo especificado en el campo de reintento (ver Database Configuration dialog), este mostrará lo siguiente: Database: Error: Error to add new register[CMD_ADD]. Si usted piensa que la configuración es correcta, y desea depurar este tipo de problema, entonces reduzca el reintento. Luego usted debe ser capaz de ver más información a detalle.

P: Cuando yo trato de acceder a la base de datos del servidor MySQL, obtengo el siguiente mensaje:

Object is not set to an instance of an object.

 

R: Este problema fue detectado bajo las siguientes condiciones:

  • Un bug conocido en MySQL Connector/Net v6.1.2 es que no se ha especificado correctamente el conjunto de caracteres, y que
  • La tabla de base de datos que usted está tratando de acceder no existe.

Para resolver este problema, estar seguro que está usando MySQL Connector/Net v6.2.0 y que la tabla que usted está accediendo exista en la base de datos.

P: ¿Por qué automáticamente la interface de la Base de Datos está cerrando algunas conexiones?

R: Por defecto, la interface de la Base de Datos puede tener como máximo 1000 conexiones. Cuando se excede de este límite, la prima conexión automáticamente se cierra para permitir una nueva conexión y la ventana “Output” mostrará un mensaje extenso describiendo qué conexión se ha cerrado y cuál fue el último comando ejecutado.

Para incrementar el número máximo de las conexiones de base de datos, abra el archivo de proyecto (project_name.app) utilizando un editor de texto y cambie la siguiente configuración:

[StDB]

MaxConnections=number_of_connections

Mantener en mente que al incrementar el número de conexiones puede disminuir el rendimiento del proyecto.

P: He configurado la cadena de conexión (Connection String) usando las propiedades de ventana del buscador y del DataLink. Cuando se cliquea en el botón Test, este muestra “Test Exitoso”; sin embargo, cuando ejecuto mi proyecto, la interface de la base de datos muestra mensajes de error y no logra guardar data.

R: Las propiedades de ventana del Data Link usa la OLE DB para interconectarse con la base de datos. La interface de base de datos de IWS usa ADO.NET; por lo tanto, usted puede tener el proveedor de OLE DB en su ordenador pero no el proveedor ADO.NET. También es posible que usted está utilizando un proveedor ADO.NET que no está agregado en la lista del archivo StADOSvr.ini. Por favor, consulte el Studio Database Gateway para mayor información de cómo añadir proveedores ADO.NET en el archivo StADOSvr.ini.

P: ¿Por qué?¿Cuándo actualizo información en una fila en el objeto Cuadrícula (Grid), se actualiza más de una fila en mi base de datos?

R: El objeto Grid emite un comando de actualización en la base de datos usando los valores de todas las columnas por una fila específica que usted está tratando de actualizar. Si usted tiene filas con valores duplicados, es posible que usted vea este problema. Si su tabla tiene una clave principal o algún campo único que usted no desea mostrar en el objeto Grid, entonces usted podrá agregar en las columnas por especificar el ancho en 0, y el problema se solucionaría.

P: ¿Por qué tengo que usar una columna a parte para guardar los milisegundos en mi base de datos?

R: Algunas base de datos no soportan milisegundos en el campo de Time Stamp. La interface de base de datos IWS, por defecto, requiere otra columna para los milisegundos. Si su base de datos maneja milisegundos, o si usted no desea guardar los milisegundos, entonces usted puede cambiar el comportamiento por defecto en las Opciones Avanzadas. Recordar que algunas base de datos son capaces de guardar milisegundos, pero ellos tienen baja precisión. Si usted desea interactuar con varias base de datos con precisiones diferentes como modo redundante, usted tendrá problemas de sincronización.

P: Mi proyecto trabaja bien cuando está en modo de simulación, pero cuando lo utilizo en un dispositivo HMI con Windows Embebido, no se puede comunicar con mi base de datos.

R: Este podría ser el caso que su dispositivo HMI con Windows Embebido no tiene instalado el Framework .Net o tal vez no tenga el proveedor que usted está usando. Trate de usar el Gateway remotamente para encontrar el problema, siguiendo las instrucciones en Linking the Database Through a Remote DB Provider.

P: Cuando intento conectarme a la base de datos ¿por qué recibo el mensaje, Error to create connection class?

R: El proveedor .Net que usted está intentando usar, no se encuentra instalado en su ordenador. Este mensaje de error, por lo general va seguido del nombre del proveedor. Si usted está utilizando la base de datos Sybase, entonces el mensaje de error sería[iAnywhere.Data.AsaClient.AsaConnection y el proveedor es iAnywhere.Data.AsaClient. También usted puede revisar que proveedor tiene instalado para ello diríjase al Control Panel > Administrative Tools > Microsoft .Net Framework x.x Configuration. El proveedor debe figurar en la lista del caché de ensamblado.

P: ¿Que haría si el proveedor ensamblado (por lo general un archivo .dll) no se encuentra en la lista del caché de ensamblado?

R: Si usted tiene el nombre exacto del ensamblado, usted puede registrarlo en el cache de ensamblado usando el programa “gcautil”. O también puede manejarlo, si usted copia su ensamblado en la misma carpeta del StADOSvr.exe (por lo general la ruta de la carpeta es […]\InduSoft Web Studio v7.1\Bin).

P: No logro acceder a mi tabla desde el objeto Grid cuando utilizo una condición específica. Pero si esta condición no se utiliza, trabaja bien. ¿Por qué sucede ello?

R: Usted debe revisar los siguientes puntos:

  1. Seguir los pasos de la solución de problemas, y buscar los mensajes de error en el registro. Un mensaje de error puede decirle que error se ha cometido, como puede ser al ingresar un nombre de columna inválida o al especificar un formato de data inválida.
  2. Algunas base de datos tienen problemas cuando se utilizan palabras reservadas en los nombres de columna. Por lo tanto, evitar usar los nombres como Time, Date, Numeric, etc.
  3. Si su nombre de columna empieza con AND o OR (e.j., ORange), entonces teclee el nombre encerrando con corchetes. Por ejemplo, en vez de ORange=10, teclee [ORange]=10.
  4. Si está utilizando SQL Server CE, usted podría tener problemas cuando consulta los campos de cadena, ya que se ha identificado que los filtros no trabajan con tipos de datos NCHAR; sin embargo, ellos pueden trabajar si usted declara estos campos como NVARCHAR(<Number>). Usted podría volver a crear su tabla por usar este tipo de data. Por ejemplo se teclea un comando y se crea una tabla con cadenas que pueden ser consultadas, como se muestra a continuación.

CREATE TABLE Table1 (Name NVARCHAR(128), Age Numeric, Sex NVARCHAR(1))

MYSQL

Q: Cuando trató de acceder a la base de datos desde mi ordenador local, este trabaja bien, pero cuando muevo mi proyecto a un ordenador remoto, este dice Access Denied.

A: Cada usuario en una base de datos MySQL tiene una propiedad asociada que le indica al ordenador desde donde este puede acceder a la base de datos. Por defecto, la propiedad es establecida en localhost, así que sólo usted podrá acceder a la base de datos si usted está accediendo desde el ordenador local. También para mayor información usted puede leer el manual MySQL acerca de cómo cambiar esta configuración.

Q: Algunas veces cuando intento sincronizar una base de datos MySQL remoto con una base de datos MySQL local, o también si trato de usar una aplicación de redundancia, una conexión de la interface ADO.NET se abre y nunca se cierra.

A: Diríjase al cuadro de configuración de la base de datos y desmarque la opción de crear automáticamente.

SYBASE

Q: He configurado mi base de datos Sybase utilizando el botón “Buscador”. Cuando cliqueo en el botón “Test”, el test es exitoso, pero cuando intento de hacer correr mi proyecto consigo el siguiente error: Database: Error: Parse error: DSN ‘MyDatabase’ does not exist. ¿Qué estoy hacienda mal?

A: Por favor revise el Appendix F de la base de datos – Usando Sybase para mayor información de este problema.

Q: ¿Por qué?, ¿Cuándo intento conectarme a la base de datos Sybase, estoy recibiendo el error Error to create connection class [iAnywhere.Data.AsaClient.AsaConnection]?

A: Usted no tiene instalado el proveedor ADO.NET en su ordenador. El programa de configuración de la base de datos tiene la opción para instalar el proveedor, por favor vuelva a ejecutar el programa de configuración y estar seguro que se ha marcado esta opción.

SQL SERVER CE

Q: ¿Por qué el gateway muestra TypeLoad failure, cuando intent accede a mi base de datos SQL Server CE?

A: Por lo general este problema sucede cuando no se tiene instalado el proveedor SQL Server CE .NET Provider en su dispositivo CE.

Q: ¿Por qué estoy teniendo este mensaje de error, There is a file sharing violation. A different process might be using the file?

A: Usted tiene otro programa interactuando con la base de datos SQL Server CE. Por decir, esto puede suceder si está utilizando el software de configuración de SQL Server CE.

Comments are closed.