PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Ejecutar la consulta
  • Recuperación del resultado de la consulta
  • Insertar consulta
  • Gestión de notas de texto
  • Gestión de memos binarios
  • Consulta SQL (HExecuteSQLQuery o consultas creadas en el editor de consultas)
  • Comparación con la sintaxis de HExecuteSQLQuery
  • SQLExec y los hilos
  • Limitaciones en PHP
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Nombra y ejecuta una consulta SQL.
Atención: La función SQLExec no inicia el proceso para recuperar el resultado en la memoria. El resultado se recupera durante la primera llamada a una de las siguientes funciones: SQLFirst, SQLTable o SQLFetch.
Observación: Para manipular una nota binaria en una consulta, utilice la palabra clave WDBinaryMemo en el texto de su consulta (consulte observaciones para obtener más detalles)..
Versiones 16 y posteriores
WEBDEV - Código Navegador Esta función ahora está disponible en código Navegador.
WEBDEV - Código Navegador Las funciones SQL se utilizan para manipular las bases de datos locales (como las bases de datos Web SQL).. Consulte Acceso a una base de datos en modo local (SQLite) para obtener más detalles.
Nueva funcionalidad versión 16
WEBDEV - Código Navegador Esta función ahora está disponible en código Navegador.
WEBDEV - Código Navegador Las funciones SQL se utilizan para manipular las bases de datos locales (como las bases de datos Web SQL).. Consulte Acceso a una base de datos en modo local (SQLite) para obtener más detalles.
WEBDEV - Código Navegador Esta función ahora está disponible en código Navegador.
WEBDEV - Código Navegador Las funciones SQL se utilizan para manipular las bases de datos locales (como las bases de datos Web SQL).. Consulte Acceso a una base de datos en modo local (SQLite) para obtener más detalles.
Versiones 19 y posteriores
iPhone/iPad Esta función está ahora disponible para las aplicaciones iPhone/iPad (acceso a las bases de datos externas a través de un servicio web).
Android Esta función está ahora disponible para las aplicaciones Android (acceso a las bases de datos externas a través de un servicio web).
Widget Android Esta función está ahora disponible en el modo Android Widget (acceso a las bases de datos externas a través de un servicio web).
Nueva funcionalidad versión 19
iPhone/iPad Esta función está ahora disponible para las aplicaciones iPhone/iPad (acceso a las bases de datos externas a través de un servicio web).
Android Esta función está ahora disponible para las aplicaciones Android (acceso a las bases de datos externas a través de un servicio web).
Widget Android Esta función está ahora disponible en el modo Android Widget (acceso a las bases de datos externas a través de un servicio web).
iPhone/iPad Esta función está ahora disponible para las aplicaciones iPhone/iPad (acceso a las bases de datos externas a través de un servicio web).
Android Esta función está ahora disponible para las aplicaciones Android (acceso a las bases de datos externas a través de un servicio web).
Widget Android Esta función está ahora disponible en el modo Android Widget (acceso a las bases de datos externas a través de un servicio web).
Observación: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
Versiones 21 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Ejemplo
WINDEVWEBDEV - Código ServidorReportes y ConsultasAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos
// Run the query and retrieve the result line by line
i is int = 0
SQLExec("SELECT LASTNAME, FIRSTNAME, EXTENSION, PHOTO FROM CUSTOMER", "QRY1")
WHILE SQLFetch("QRY1") = 0 // There is still another line to read
i++
// Retrieve the data
LASTNAME[i] = SQLGetCol("QRY1", 1)
FIRSTNAME[i] = SQLGetCol("QRY1", 2)
EXTENSION[i] = SQLGetCol("QRY1", 3)
{"IMAGE"+i} = SQLGetMemo("QRY1", 4)
END
SQLClose("QRY1")
Sintaxis

Ejecutar una consulta SQL Ocultar los detalles

<Result> = SQLExec(<Text of SQL query> , <Query name>)
<Result>: booleano
  • True si se ejecutó la consulta,
  • False en caso contrario. Si la consulta no se ha ejecutado, el mensaje de error puede ser devuelto por el SQL.MesError Variable una vez que se haya ejecutado SQLInfo.
<Text of SQL query>: Cadena de caracteres (con comillas)
Código SQL de la consulta a ejecutar.
<Query name>: Cadena de caracteres (con comillas)
Nombre associated con el texto de la consulta. Corresponde a:
  • el nombre de la consulta lógica.
  • el nombre y el ruta completo de la consulta (archivo".WDR").
Java El nombre de la consulta corresponde sólo al nombre de la consulta lógica.
Versiones 16 y posteriores
WEBDEV - Código Navegador

Ejecutar una consulta SQL en el código del navegador Ocultar los detalles

<Result> = SQLExec(<Text of SQL query> , <Query name> [, <Procedure name>])
<Result>: booleano
  • True si se ejecutó la consulta,
  • False en caso contrario. La ejecución de la consulta es asincrónica: la función solicita la ejecución de la consulta, entonces el actual Process continúa ejecutándose sin recuperar el resultado de la consulta.
    El resultado de la función SQLExec solo permite gestionar los problemas de conexión. Le aconsejamos que compruebe la correcta ejecución de la consulta en el <Procedure nombre> Procedure.
<Text of SQL query>: Cadena de caracteres (con comillas)
Código SQL de la consulta a ejecutar.
<Query name>: Cadena de caracteres (con comillas)
Nombre associated con el texto de la consulta.
<Procedure name>: Cadena de caracteres (con comillas)
Nombre de WLanguage Procedure a ejecutar durante la ejecución de la consulta SQL.
Este Procedure puede ser un navegador Procedure global al proyecto o un navegador Procedure local a la página que contiene el código actualmente ejecutado. Este procedimiento tiene el siguiente formato:
PROCEDURE Procedure Name(<Query name>)
donde <Nombre de la consulta> es el nombre de la consulta que se está ejecutando actualmente.
Este Procedure se inicia al final de la ejecución de la consulta real (independientemente del resultado de la consulta). Este navegador Procedure se utiliza para:
  • comprobar la correcta ejecución de la consulta. SQLInfo se ejecuta automáticamente durante la llamada al Procedure. Por lo tanto, todas las variables SQL están posicionadas. Si se produce un error, el error SQL será distinto de "00000".. El mensaje de error es devuelto por el SQL.MesError Variable.
  • navegar por el resultado de la consulta.
Si se ejecutan nuevas consultas en este Procedure (para añadir registros por ejemplo), se puede:
  • usan la misma Procedure: el parámetro de este Procedure se utiliza para averiguar la consulta que se está ejecutando actualmente.
  • usar un navegador diferente Procedure para probar el resultado de estas nuevas consultas.
Nueva funcionalidad versión 16
WEBDEV - Código Navegador

Ejecutar una consulta SQL en el código del navegador Ocultar los detalles

<Result> = SQLExec(<Text of SQL query> , <Query name> [, <Procedure name>])
<Result>: booleano
  • True si se ejecutó la consulta,
  • False en caso contrario. La ejecución de la consulta es asincrónica: la función solicita la ejecución de la consulta, entonces el actual Process continúa ejecutándose sin recuperar el resultado de la consulta.
    El resultado de la función SQLExec solo permite gestionar los problemas de conexión. Le aconsejamos que compruebe la correcta ejecución de la consulta en el <Procedure nombre> Procedure.
<Text of SQL query>: Cadena de caracteres (con comillas)
Código SQL de la consulta a ejecutar.
<Query name>: Cadena de caracteres (con comillas)
Nombre associated con el texto de la consulta.
<Procedure name>: Cadena de caracteres (con comillas)
Nombre de WLanguage Procedure a ejecutar durante la ejecución de la consulta SQL.
Este Procedure puede ser un navegador Procedure global al proyecto o un navegador Procedure local a la página que contiene el código actualmente ejecutado. Este procedimiento tiene el siguiente formato:
PROCEDURE Procedure Name(<Query name>)
donde <Nombre de la consulta> es el nombre de la consulta que se está ejecutando actualmente.
Este Procedure se inicia al final de la ejecución de la consulta real (independientemente del resultado de la consulta). Este navegador Procedure se utiliza para:
  • comprobar la correcta ejecución de la consulta. SQLInfo se ejecuta automáticamente durante la llamada al Procedure. Por lo tanto, todas las variables SQL están posicionadas. Si se produce un error, el error SQL será distinto de "00000".. El mensaje de error es devuelto por el SQL.MesError Variable.
  • navegar por el resultado de la consulta.
Si se ejecutan nuevas consultas en este Procedure (para añadir registros por ejemplo), se puede:
  • usan la misma Procedure: el parámetro de este Procedure se utiliza para averiguar la consulta que se está ejecutando actualmente.
  • usar un navegador diferente Procedure para probar el resultado de estas nuevas consultas.
WEBDEV - Código Navegador

Ejecutar una consulta SQL en el código del navegador Ocultar los detalles

<Result> = SQLExec(<Text of SQL query> , <Query name> [, <Procedure name>])
<Result>: booleano
  • True si se ejecutó la consulta,
  • False en caso contrario. La ejecución de la consulta es asincrónica: la función solicita la ejecución de la consulta, entonces el actual Process continúa ejecutándose sin recuperar el resultado de la consulta.
    El resultado de la función SQLExec solo permite gestionar los problemas de conexión. Le aconsejamos que compruebe la correcta ejecución de la consulta en el <Procedure nombre> Procedure.
<Text of SQL query>: Cadena de caracteres (con comillas)
Código SQL de la consulta a ejecutar.
<Query name>: Cadena de caracteres (con comillas)
Nombre associated con el texto de la consulta.
<Procedure name>: Cadena de caracteres (con comillas)
Nombre de WLanguage Procedure a ejecutar durante la ejecución de la consulta SQL.
Este Procedure puede ser un navegador Procedure global al proyecto o un navegador Procedure local a la página que contiene el código actualmente ejecutado. Este procedimiento tiene el siguiente formato:
PROCEDURE Procedure Name(<Query name>)
donde <Nombre de la consulta> es el nombre de la consulta que se está ejecutando actualmente.
Este Procedure se inicia al final de la ejecución de la consulta real (independientemente del resultado de la consulta). Este navegador Procedure se utiliza para:
  • comprobar la correcta ejecución de la consulta. SQLInfo se ejecuta automáticamente durante la llamada al Procedure. Por lo tanto, todas las variables SQL están posicionadas. Si se produce un error, el error SQL será distinto de "00000".. El mensaje de error es devuelto por el SQL.MesError Variable.
  • navegar por el resultado de la consulta.
Si se ejecutan nuevas consultas en este Procedure (para añadir registros por ejemplo), se puede:
  • usan la misma Procedure: el parámetro de este Procedure se utiliza para averiguar la consulta que se está ejecutando actualmente.
  • usar un navegador diferente Procedure para probar el resultado de estas nuevas consultas.
Observaciones

Ejecutar la consulta

La información relativa a la ejecución de la consulta es devuelta por SQLInfo. El SQL.NbCol Variable contiene el número de columnas encontradas en el resultado de la consulta.
Una vez ejecutada y procesada, la consulta debe ser liberada por SQLClose.

Recuperación del resultado de la consulta

Entonces, el resultado de la consulta puede ser:
WINDEVWEBDEV - Código ServidorReportes y ConsultasAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/Server

Insertar consulta

Cuando se ejecuta una consulta INSERT, la variable SQL.IdAuto contiene el identificador automatic que se añadió durante el INSERT anterior.
WINDEVWEBDEV - Código ServidorReportes y ConsultasPHPAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos

Gestión de notas de texto

En el parámetro <Query text>, se utiliza un texto de memo como un texto Variable. Por ejemplo:
// Query with condition on a text memo whose value is "Good customer"
QueryText = "SELECT CUSTNAME FROM CUSTOMER WHERE CUSTOMERMEMO = 'Good customer'"
SQLExec(QueryText, "QRY1")
WINDEVWEBDEV - Código ServidorReportes y ConsultasJavaCódigo de Usuario (UMC)ODBCConectores Nativos

Gestión de memos binarios

Para escribir un memo binario en un tabla (usando un comando SQL UPDATE o INSERT), se debe usar la siguiente sintaxis en el texto de la consulta:
{WDBinaryMemo('<FileName>' [,'File']}
donde:
  • Archivo (valor Default) indica que el memo es un memo binario (proveniente de un archivo).
  • WDBinaryMemo es una palabra reservada.
  • <NombreArchivo> es el nombre físico de un archivo.
    Versiones 19 y posteriores
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil)..
    Nueva funcionalidad versión 19
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil)..
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil)..
{WDBinaryMemo('<FileName>' [,'TextFile']}
donde:
  • TextFile indica que el memo es un memo de texto (procedente de un archivo).
  • WDBinaryMemo es una palabra reservada.
  • <NombreArchivo> es el nombre físico de un archivo.
    Versiones 19 y posteriores
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil)..
    Nueva funcionalidad versión 19
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil)..
    AndroidWidget Android iPhone/iPad Caso de acceso a bases de datos externas a través de un Webservice: El fichero ruta corresponde a un ruta local a la aplicación que ejecuta el Webservice (es decir, un ruta en el dispositivo móvil).. Por ejemplo:
// Insert the C:\PHOTO\SMITH.BMP file into a binary memo
QueryText = "INSERT INTO CUSTOMER VALUES ('SMITH', 'John'," + ...
"{WDBinaryMemo('C:\PHOTO\SMITH.BMP')})"
SQLExec(QueryText, "QRY1")
// Insert the C:\DOC\LETTER.TXT file into a text memo
QueryText = "INSERT INTO CUSTOMER VALUES ('THOMPSON', 'Christopher'," + ...
"{WDBinaryMemo('C:\DOC\LETTER.TXT', 'TextFile')})"
SQLExec(QueryText, "QRY1")
Observación: No es posible insertar memos binarios en un archivo HFSQL con las funciones SQL y se produce un error.. El mensaje de error es el siguiente: "Incapaz de inicializar la consulta. Inesperado {WDBinaryMemo( character".
WINDEVWEBDEV - Código ServidorReportes y ConsultasAjaxCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5

Consulta SQL (HExecuteSQLQuery o consultas creadas en el editor de consultas)

Cuando se utilizan las instrucciones SQL DELETE, INSERT o UPDATE, no se realiza ninguna comprobación de integridad ni de duplicados en una base de datos HFSQL.. Esta funcionalidad no está disponible en esta versión.
Solución: Utilizar las funciones HFSQL (HDelete, HAdd o HModify) en sus ficheros de datos.. La comprobación de integridad y la comprobación de duplicados se realizarán automáticamente.
Observación: HExecuteQuery y HExecuteSQLQuery se utilizan para comprobar la integridad y los duplicados en una base de datos HFSQL.
WINDEVWEBDEV - Código ServidorReportes y ConsultasJavaPHPCódigo de Usuario (UMC)HFSQLHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos

Comparación con la sintaxis de HExecuteSQLQuery

HExecuteSQLQuery también se puede utilizar para ejecutar una consulta SQL. Los parámetros de estas dos funciones son idénticos, pero su orden es inverso.: de hecho, HExecuteSQLQuery especifica primero el nombre de la consulta y luego el texto de la consulta (utilizando el mismo estándar que todas las funciones HFSQL).
La sintaxis de la función SQLExec se conserva por motivos de compatibilidad.

SQLExec y los hilos

Al ejecutar la función SQLExec en un hilo secundario, la conexión utilizada debe establecerse en el mismo hilo: la conexión no se puede establecer en el hilo principal (proyecto o ventana). La conexión establecida por SQLConnect no es compartida en los otros hilos.
PHP

Limitaciones en PHP

  • Los memos binarios no pueden ser manejados en esta versión. La consulta se ejecuta en una base de datos MySQL.
  • No se admiten las consultas múltiples. Por ejemplo:
    DROP TABLE TEST ;
    CREATE TABLE TEST (`IDTEST` INTEGER  PRIMARY KEY ,
    `recipient` VARCHAR(50)  NOT NULL ,
    `testname` VARCHAR(50)  NOT NULL ,`PRODUCTNAME` VARCHAR(50)  NOT NULL );
Componente : wd250hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo completo
ConnectionNum is int
SourceName is string
// Connection to a specific data source via ODBC MS ACCESS
SourceName = "MS Access 97 Database"
ConnectionNum = SQLConnect(SourceName, "", "", "", "ODBC") // <--------
IF ConnectionNum <> 0 THEN
// The connection was successful

// Run the query and retrieve the result line by line
i is int = 0
SQLExec("SELECT LASTNAME, FIRSTNAME, EXTENSION, PHOTO FROM CUSTOMER", "QRY1") // <--------
WHILE SQLFetch("QRY1") = 0 // There is still another line to read
i++
// Retrieve the data
LASTNAME[i] = SQLGetCol("QRY1", 1)
FIRSTNAME[i] = SQLGetCol("QRY1", 2)
EXTENSION[i] = SQLGetCol("QRY1", 3)
{"IMAGE"+i} = SQLGetMemo("QRY1", 4)
END
SQLClose("QRY1")

ELSE
// The connection failed: display an error message
SQLInfo()
Error("The connection to the data source " + SourceName + " failed." + CR + ...
"Error code: " + SQL.Error + CR + SQL.MesError)

END
// In any case (connection OK or not)
SQLDisconnect() // <--------
BOLLER
11 09 2018