AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / Funciones SQL
  • 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/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
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)..
WEBDEV - Código Navegador Las funciones SQL se utilizan para manipular las bases de datos locales (como las bases de datos Web SQL).. Para obtener más información, consulte Acceso a una base de datos en modo local (SQLite).
Ejemplo
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL 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 la consulta fue ejecutada,
  • False en caso contrario. Si la consulta no se ha ejecutado, la variable SQL.MesError puede devolver el mensaje de error una vez que se ha 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 asociado al 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.
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> [, <WLanguage procedure>])
<Result>: booleano
  • True si la consulta fue ejecutada,
  • 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 proceso actual 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 campo <Nombre del procedimiento> procedimiento.
<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 asociado al texto de la consulta.
<WLanguage procedure>: Nombre del procedimiento
Nombre del procedimiento WLanguage a ejecutar durante la ejecución de la consulta SQL.
Este procedimiento puede ser un procedimiento de navegador global para el proyecto o un procedimiento de navegador local para la página que contiene el código que se está ejecutando actualmente.. 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 procedimiento se inicia al final de la ejecución de la consulta real (independientemente del resultado de la consulta).. Este procedimiento de navegación se utiliza para:
  • comprobar la correcta ejecución de la consulta. SQLInfo se ejecuta automáticamente durante la llamada al procedimiento. 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 la variable SQL.MesError.
  • navegar por el resultado de la consulta.
Si se ejecutan nuevas consultas en este procedimiento (por ejemplo, para añadir registros), puede:
  • utilizar el mismo procedimiento: el parámetro de este procedimiento se utiliza para averiguar la consulta que se está ejecutando actualmente.
  • utilizar un procedimiento de navegación diferente 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. La variable SQL.NbCol contiene el número de columnas que se encuentran 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:
  • Transferido a un tabla o a un list box (SQLTable).
  • Transferido a controles o variables (SQLAssociate).
  • Recuperado línea por línea (SQLFetch).
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL Client/Server

Insertar consulta

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

Gestión de notas de texto

En el parámetro <Query text>, una nota de texto se utiliza como una variable de texto. 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 por defecto) indica que el memo es un memo binario (procedente de un archivo).
  • WDBinaryMemo es una palabra reservada.
  • <NombreArchivo> es el nombre físico de un archivo.
    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.
    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 ConsultasCódigo de Usuario (UMC)AjaxHFSQL ClassicHFSQL 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 ConsultasJavaCódigo de Usuario (UMC)PHPHFSQL ClassicHFSQL 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: wd290hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo de conexao em Postgresql em outra porta
nDBConnection = SQLConnect(sServerIP,sUser,sPassword,sDBName,"PostgreSQL","","Server Port = 15433")
Boller
12 04 2023

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local