Funciones de SQL Database

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ónlong DbExec (cadena ConnectString, cadena SqlStmt)
FunciónEjecuta 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.
CruzDbQuery , DbTest , DbClose
Ejemplolong nRows
nRows: = DbExec (“, ‘ACTUALIZAR AL_CLASSES SET DESCRIPTION_0 =’ Clase de mensaje 1 ′ DONDE ID = 1 ‘)

DbQuery

Declaracióncadena DbQuery <(cadena ConnectString, cadena SqlStmt)
FunciónEjecuta 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.
CruzDbExec , DbTest , DbClose
Ejemplostring szResultSet
szResultSet: = DbQuery (”, ‘SELECT * FROM AL_CLASSES’)

DbTest

Declaraciónlong DbTest (cadena ConnectString)
FunciónAbre 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
CruzDbExec , DbQuery , DbClose
Ejemplolong nResult
nResult: = DbTest (“)

DbClose

DeclaraciónDbClose (cadena ConnectString)
FunciónCierra 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
CruzDbExec , DbQuery , DbTest
EjemploDbClose («)

DbMsg

Declaraciónbool DbMsg (grupo de mensajes largos, operando de cadena, acción de cadena)
FunciónEjecuta 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.
CruzDbMsgExt
Ejemplobool rv
rv: = DbMsg (1, ‘M 3.0’, ‘K’)

DbMsgExt

Declaraciónbool 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ónEjecuta 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.
CruzDbMsg
Ejemplobool rv
rv: = DbMsgExt (1, ‘M 3.1’, ‘K’, ‘2008-03-12 13: 09: 11.000’, ‘SÍM’, ‘TEXTO’, 1, 2)

GetRowCnt

Declaraciónlong GetRowCnt (cadena s)
FunciónDevuelve el número de filas de la cadena s especificada.
CruzGetColCnt
Ejemplolong r
r: = GetRowCnt (‘”Zeile_1 ″’ + ‘rn’ + ‘” Zeile_2 ″’ + ‘rn’)

GetColCnt

Declaraciónlong GetColCnt (cadena s)
FunciónDevuelve el número de columnas de la cadena s especificada.
CruzGetRowCnt
Ejemplolong c
c: = GetColCnt (‘”Spalte_1 ″,“ Spalte_2 ″’ + ‘rn’)

GetRow

Declaraciónstring GetRow (string s, long r)
FunciónDevuelve la fila r de la cadena s especificada.
CruzGetRowCnt , GetColCnt
EjemploCadena s
s: = GetRow (‘”Zeile_1 ″’ + ‘rn’ + ‘” Zeile_2 ″’ + ‘rn’, 2)

GetCol

Declaraciónstring GetCol (cadena s, r larga, c larga)
DeclaraciónDevuelve el valor de la columna c de la fila r de la cadena s especificada.
CruzGetColbyName
EjemploCadena 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ónString GetColByName (cadena s, r larga, cadena c)
FunciónDevuelve 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.
EjemploCadena 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.