Estas funciones le permiten consultar o modificar datos en un servidor SQL. VisXpert viene con una base de datos SQL-Server incorporada que generalmente se incluye en el proyecto. Sin embargo, todas las funciones le permiten especificar una cadena de conexión personalizada, lo que le permite conectarse a cualquier base de datos compatible con ODBC, como SQL-Server o archivos MS-Access.
Para consultar datos, usa DBQuery y luego analiza la cadena de «resultado» mediante funciones como «GetRowCnt» y una combinación de «GetRow» para obtener la fila que desea procesar y luego «GetCol» para obtener el campo de datos que necesita. Si deja el parámetro «ConnectionString» vacío, se utiliza la base de datos interna del proyecto.
El resultado de DBQuery devuelve los datos como una cadena con formato CSV. La primera línea contiene los nombres de las columnas, la segunda fila contiene sus tipos de datos. Los datos reales comienzan en la tercera fila
Esto generalmente sigue esta estructura:
string result
result := DbQuery(», ‘Select TestColumn1, Column2, OtherColumn3 from TestingData’)
long rowNo
rowNo := 3 //first row are the field names, second row holds the datatypes
//go through each row, starting at the first row. The first row is row number 1
while rowNo <= GetRowCnt(result)
string row, data
row := GetRow(result, rowNo) //first get the current row we are processing
data := GetCol(row, 2) //then get the column of that row, in our case the second row
data := GetColByName(result, rowNo, ‘Column2’) //this is equivalent to the previous line
….Process data here….
rowNo := rowNo + 1 //go to the next row
endwhile
Ejemplo de uso de funciones de consulta SQL
DbExec
| Declaración | long DbExec (cadena ConnectString, cadena SqlStmt) |
| Función | Ejecuta la cadena SqlStmt especificada en la base de datos especificada por String ConnectString y devuelve el número de registros modificados. Si ConnectString se pasa una cadena vacía, la declaración se muestra en la base de datos especificada del archivo .. USER_DATSQLGP.udl. |
| Cruz | DbQuery , DbTest , DbClose |
| Ejemplo | long nRows nRows: = DbExec (“, ‘ACTUALIZAR AL_CLASSES SET DESCRIPTION_0 =’ Clase de mensaje 1 ′ DONDE ID = 1 ‘) |
DbQuery
| Declaración | cadena DbQuery <(cadena ConnectString, cadena SqlStmt) |
| Función | Ejecuta la instrucción Select especificada SqlStmt en la base de datos especificada por String ConnectString y devuelve los registros seleccionados en el formato CSV (separados por comas, CR LF) (la fila 1 contiene los nombres de las columnas, la fila 2 contiene los tipos de columna y de la fila 3 el los registros seleccionados, si los hay, se devuelven). Si ConnectString se pasa una cadena vacía, la declaración se muestra en la del archivo .. USER_DATSQLGP.udl base de datos especificada. |
| Cruz | DbExec , DbTest , DbClose |
| Ejemplo | string szResultSet szResultSet: = DbQuery (”, ‘SELECT * FROM AL_CLASSES’) |
DbTest
| Declaración | long DbTest (cadena ConnectString) |
| Función | Abre la conexión de base de datos especificada y devuelve lo mismo que GetLastErrNo («último error») para la conexión de base de datos especificada por String ConnectString. Si ConnectString se pasa una cadena vacía, el «último error» del que está en el archivo .. USER_DATSQLGP.udl especificó la base de datos. Esta función es útil para asegurar que una base de datos esté conectada. Si esta función se combina con DBTest, puede realizar una Reconexión de la base de datos |
| Cruz | DbExec , DbQuery , DbClose |
| Ejemplo | long nResult nResult: = DbTest (“) |
DbClose
| Declaración | DbClose (cadena ConnectString) |
| Función | Cierra la conexión de base de datos especificada por String ConnectString. Si ConnectString se pasa una cadena vacía, la base de datos especificada del archivo .. USER_DATSQLGP.udl se cierra. Si esta función se combina con DBTest, puede realizar una Reconexión de la base de datos |
| Cruz | DbExec , DbQuery , DbTest |
| Ejemplo | DbClose («) |
DbMsg
| Declaración | bool DbMsg (grupo de mensajes largos, operando de cadena, acción de cadena) |
| Función | Ejecuta la transacción de mensaje especificada por la acción de cadena con el grupo de mensajes y los parámetros del operando y devuelve VERDADERO o FALSO. Las transacciones de mensajes operan en el archivo de mensajes de alarma activo actual y le permiten activar o desactivar mensajes de alarma en el sistema de alarma desde dentro de los scripts. Esta función se puede utilizar para crear mensajes de alarma que no dependen de variables, sino que se crean mediante scripts. |
| Cruz | DbMsgExt |
| Ejemplo | bool rv rv: = DbMsg (1, ‘M 3.0’, ‘K’) |
DbMsgExt
| Declaración | bool DbMsgExt (grupo de mensajes largo, operando de cadena, acción de cadena, marca de tiempo de cadena, símbolo de cadena, texto de cadena, clase de mensaje largo, tipo de mensaje largo) |
| Función | Ejecuta la transacción de mensaje especificada por la acción de cadena con los parámetros grupo de mensajes, operando, marca de tiempo, simbólico, prueba, clase de mensaje y tipo de mensaje, y devuelve VERDADERO o FALSO. |
| Cruz | DbMsg |
| Ejemplo | bool rv rv: = DbMsgExt (1, ‘M 3.1’, ‘K’, ‘2008-03-12 13: 09: 11.000’, ‘SÍM’, ‘TEXTO’, 1, 2) |
GetRowCnt
| Declaración | long GetRowCnt (cadena s) |
| Función | Devuelve el número de filas de la cadena s especificada. |
| Cruz | GetColCnt |
| Ejemplo | long r r: = GetRowCnt (‘”Zeile_1 ″’ + ‘rn’ + ‘” Zeile_2 ″’ + ‘rn’) |
GetColCnt
| Declaración | long GetColCnt (cadena s) |
| Función | Devuelve el número de columnas de la cadena s especificada. |
| Cruz | GetRowCnt |
| Ejemplo | long c c: = GetColCnt (‘”Spalte_1 ″,“ Spalte_2 ″’ + ‘rn’) |
GetRow
| Declaración | string GetRow (string s, long r) |
| Función | Devuelve la fila r de la cadena s especificada. |
| Cruz | GetRowCnt , GetColCnt |
| Ejemplo | Cadena s s: = GetRow (‘”Zeile_1 ″’ + ‘rn’ + ‘” Zeile_2 ″’ + ‘rn’, 2) |
GetCol
| Declaración | string GetCol (cadena s, r larga, c larga) |
| Declaración | Devuelve el valor de la columna c de la fila r de la cadena s especificada. |
| Cruz | GetColbyName |
| Ejemplo | Cadena s s: = GetCol (‘”Wert_1_1 ″,” Wert_1_2 ″’ + ‘rn’ + ‘”Wert_2_1 ″,” Wert_2_2 ″ +’ rn ‘, 2, 1) |
¡ADVERTENCIA! La función GetCol no considera cadenas entre comillas. Si tienes una «coma» dentro de un campo, se interpretará como un delimitador de columna y se devolverán valores incorrectos. Te aconsejamos que uses la siguiente función, que actúa como un reemplazo.
Este defecto fue mejorado desde la verion VisXpert 10.2.0.0. Para versiones anteriores, por favor use la funcion mencionado arriba.
GetColbyName
| Declaración | String GetColByName (cadena s, r larga, cadena c) |
| Función | Devuelve el valor de la columna c de la fila r de la cadena s especificada. En la primera fila, todos los nombres de las columnas deben estar presentes. |
| Ejemplo | Cadena s s: = GetColByName (‘”Spalte_1 ″,“ Spalte_2 ″’ + ‘rn’ + ‘”Wert_1_1”, “Wert_1_2 ″’ + ‘rn’ + ‘” Wert_2_1 ”,“ Wert_2_2 ″’ + ‘rn’, 3 , ‘Spalte_2’) |
¡ADVERTENCIA! La función GetCol no considera cadenas entre comillas. Si tienes una «coma» dentro de un campo, se interpretará como un delimitador de columna y se devolverán valores incorrectos. Te aconsejamos que uses la siguiente función, que actúa como un reemplazo.
Este defecto fue mejorado desde la verion VisXpert 10.2.0.0. Para versiones anteriores, por favor use la funcion mencionado arriba.

