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

Como crear un Grupo de Consultas SQL en InduSoft Web Studio

¿Necesita crear la habilidad para su grupo de Ingenieros o TI de tener acceso directo a la base de datos o de otra manera crear un grupo de consultas a la base de datos en una aplicación?  Aquí se muestra como hacerlo con el software SCADA InduSoft Web Studio.

Con el fin de crear una consulta SQL en InduSoft, Es cuestión de un simple uso de la función DBExecute() y crear una conexión a la base de datos en la tarea de explorador de proyectos.  Las siguientes figuras y descripciones mas el ejemplo de aplicación hacen la configuración muy fácil.

Configuración de la Conexión a la Base de Datos

La conexión a la base de datos es muy simple. Simplemente haga clic derecho en Database/ERP y añada una nueva conexión, luego direccione a la base de datos usando los drivers necesarios, coloque sus credenciales y habrá terminado.  La Figura 1 al 4 muestra conexiones a una Base de Datos en Access y a un Servidor de Base de Datos SQL, respectivamente.

Web Studio SQL

Figura 1: Conexión a la Base de Datos en Access NORTHWIND (ubicado en la carpeta del proyecto)

Figura 2: Configuración de Conexión a la Base de Datos SQL Server (Si está usando uno, no es requerido para el ejemplo de aplicación).

Figura 3: Para Base de Datos Access, use MS Office 12.0 Access DB Engine (OLE DB Provider)

Figura 4: Usando la función {$GetAppPath()}\DBName.accdb para ubicar la base de datos Access en la carpeta del proyecto mostrará un error si “Probar conexión” es presionado.  Esto es debido a una limitación en el driver intentando  de procesar la función, pero en otros casos opera correctamente.

 

Usando la función DBExecute y el Ejemplo de Aplicación

La función DBExecute() tiene la siguiente estructura:

iReturnValueTag = DBExecute(strDBConn, strSQL, optStrTags, optNumMaxRows, optStrErrorTag)

 

Donde:

 

strDBConn

El nombre de la conexión a la base de datos. Las conexiones son configuradas en la carpeta Database/ERP en el Explorador de Proyectos.

strSQL

Una sentencia SQL complete y sintácticamente correcta.

Nota: En SQL, las llaves ({}) son típicamente usadas para cerrar expresiones que deben ser evaluadas antes que toda la sentencia SQL sea ejecutada. Por ejemplo:

SELECT * INTO inmates FROM OPENROWSET (‘MSDASQL’,’Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=C:\;Extensions=CSV;’,’SELECT * FROM flat.csv’)

En IWS, sin embargo, las llaves son usadas para referenciar tags del proyecto en campos de texto que no son normalmente evaluados (por ejemplo, en el título de un objeto Botón). Si pasa una sentencia SQL que incluye tal expresión a DBExecute, entonces el proyecto intentará de evaluar la expresión como una referencia de tag y la función fallará.

Para pasar la sentencia SQL tal que el proyecto pueda correctamente evaluar la expresión, crea una nueva cadena de tag que contiene el texto de la expresión y luego la referencia del tag en la sentencia SQL. Por ejemplo:

AuxTag = “{Microsoft Text Driver (*.txt; *.csv)}

DBExecute ( “inmates”, “SELECT * INTO inmates FROM OPENROWSET (‘MSDASQL’,’Driver={AuxTag};DEFAULTDIR=C:\;Extensions=CSV;’,’SELECT * FROM flat.csv’)”)

optStrTags

Una lista delimitada por comas de nombres de matrices de tags en su proyecto, al cual las columnas de un resultado SQL SELECT serán mapeados. La base de datos serán copiados a estas matrices de tags, con la primera fila del grupo de resultados siendo copiados a la matriz de índice 0. Asegúrese que las matrices sean lo suficientemente grandes para recibir todas las filas del grupo de resultados.

Este parámetro es requerido solo cuando strSQL contiene una sentencia SQL SELECT. Para todos los otros tipos de sentencias, este parámetro es ignorado y puede ser omitido. Sin embargo, si necesita mantener la sintaxis de la function con el objetivo de continuar a través de optStrErrorTag, entonces de a este parámetro una cadena en blanco (“”).

optNumMaxRows

El máximo número de filas a ser copiado desde un grupo de resultado SQL SELECT. En muchos casos, copiar todas las filas, especificando un número mas grande que el número mas grande que el número esperado de filas del grupo resultante.

Este parámetro es requerido solo cuando strSQL contiene una sentencia SQL SELECT. Para todos los otros tipos de sentencias, este parámetro es ignorado y puede ser omitido. Sin embargo, si necesita mantener la sintaxis de la function con el objetivo de continuar a través de optStrErrorTag, entonces de a este parámetro el valor de 0.

optStrErrorTag

El nombre de una Cadena de tag que recibirá mensajes de error detallados, si los errores ocurren durante el runtime.

Nota: El nombre de tag debe estar encerrado entre comillas, como es mostrado en la sintaxis del diagrama, o sino el proyecto intentará de obtener el valor del tag nombrado.

Este un parámetro opcional.

Valor de retorno

Esta function retorna el número total de filas afectados por la sentencia SQL. Si un error ocurre, entonces retorna un número negativo.

Por favor note que este es el valor retornado por la función misma. En el caso de una sentencia SQL SELECT, los valores de la base de datos son copiados a la matriz de tags especificados por optStrTags.

Mayor información sobre la function esta en Manual de Ayuda en Contenidos >> Apéndice: Script Incorporado >> funciones Database/ERP >> DBExecute.

 

El ejemplo de aplicación de InduSoft Web Studio  de Consultas AdHoc puede ser descargado aquí, es mostrado y descrito en la Figura 5 a la 9.

Figura 5: Pantalla de Pruebas de Alarmas – Usado para crear varias alarmas en la table de ALARMHISTORY de la base de datos del proyecto, el cual esta localizado en la carpeta del proyecto.  El botón de “Limpiar Alarmas” borrará todas las alarmas de la tabla.

Figura 6: Pantalla de Prueba SQL—En esta pantalla, puede ingresar consultas y obtener datos de retorno a la tabla (Máximo 10 Columnas y 100 grabaciones).  Esta figura muestra una consulta a la base de datos del proyecto, tabla ALARMHISTORY.  Note que la base de datos son elegidos por botones de opciones, los cuales escriben los nombres de las plantillas de conexiones a la Base de Datos a la función DBExecute(). (Ver Fig. 8)

Figura 7: Pantalla de Prueba SQL—Esta consulta es a la Base de Datos en Access NORTHWIND, tabla products, el cual está en la carpeta del proyecto.

Figura 8: El script cuando cuando hace clic “Run Query”—La primera rutina en el lazo “For-Next” limpia todas las ubicaciones guardadas en el tag de clase cQueryResultTag, luego la función DBExecute() retorna resultados de la consulta en estas ubicaciones, hasta 10 columnas de ancho y 100 filas.

Figura 9: El objeto cuadrícula muestra el tag tipo clase cQueryResultsTag simplemente ingresando el nombre del tag de clase en el campo Class Tag del Origen de Datos.

Comments are closed.