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
  • Characteristics of the Table control populated programmatically
  • Closing a query
  • Using the Partial Fetch
  • The different types of queries
  • Retrieving Float items on Oracle (via ODBC)
  • Unicode management
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
Transfers the result of a query to a Table control populated programmatically (a List Box or Combo Box control), with the possibility of Partial Fetch (the result is retrieved by blocks of rows). In a "SQLFetch/SQLGetCol" browse, the transfer of information to the Table control will start from the current record.
Note This function must be used when browsing the result of a query of type SQLFetch/ SQLGetCol. A fatal error occurs if this function is used in an SQLFirst/SQLCol browse. For more details, see Types of SQL browse.
Java The partial fetch is automatically performed by the Java framework.
Ejemplo
// Transfer to a Table control: retrieval without fetch
ResSQL = SQLExec("SELECT CUSTNAME, CUSTFIRSTNAME FROM INV", "QRY1")
IF ResSQL THEN
	SQLTable("QRY1", TABLE_QryTab, "Customer name" + TAB + "First name", "30 20")
	// Calculates the number of result records
	NbRec is int = TableCount(TABLE_QryTab)
ELSE
	// SQL error
END
SQLClose("QRY1")
WINDEVCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos
// Transfer to a Table control: retrieve the first 25 fields only
ResSQL = SQLExec("SELECT CUSTLASTNAME, CUSTFIRSTNAME, CITY FROM INV", "QRY1")
IF ResSQL THEN
	// Get the first 25 rows only
	SQLTable("QRY1", TABLE_QryTab, 25)
ELSE
	// SQL error
END
SQLClose("QRY1")
WINDEVCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos
// Transfer to a Table control: retrieval by Fetch
ResSQL = SQLExec("SELECT CUSTLASTNAME, CUSTFIRSTNAME, CITY FROM INV", "QRY1")
IF ResSQL THEN
	// Retrieve by groups of 28 rows
	WHILE SQLTable(28, "QRY1", TABLE_MYTABLE, "TitleCol", "90")
		// Process  
ELSE
	// SQL error
END
SQLClose("QRY1")
Sintaxis

Transfer to a Table control populated programmatically without Partial Fetch Ocultar los detalles

SQLTable(<Query name> , <Table control> , <Maximum number of rows> [, <Title of columns>] , <Width of columns>)
<Query name>: Character string
Name of the query created and executed with SQLExec, or executed with SQLExecWDR.
Java The query name must necessarily be enclosed in quotes.
<Table control>: Control name
Name of the Table control populated programmatically where the result of the query will be displayed.
<Maximum number of rows>: Integer
Maximum number of rows displayed in the Table control. If this parameter is specified, the Table control will contain a maximum of <Maximum number of rows> rows displayed, even if the result of the query contains a greater number of rows.
<Title of columns>: Optional character string
List of all the column titles in the Table control populated programmatically. The different titles are separated by TAB characters. To specify the widths of the columns only, this parameter can correspond to an empty string ("").
<Width of columns>: Character string
List of all the column widths, separated by a space character. To specify the titles of the columns only, this parameter can correspond to an empty string ("").
WINDEVCódigo de Usuario (UMC)

Transfer to a Table control populated programmatically with Partial Fetch Ocultar los detalles

SQLTable(<Number of rows in a block> , <Query name> , <Table control> [, <Title of columns>] , <Width of columns>)
<Number of rows in a block>: Integer
Number of rows included in a block for the Partial Fetch. Only this block of rows is loaded in memory, the following blocks are automatically loaded in memory in a background task.
<Query name>: Character string
Name of the query created and executed with SQLExec, or executed with SQLExecWDR.
<Table control>: Control name
Name of the Table control populated programmatically where the result of the query will be displayed.
<Title of columns>: Optional character string
List of all the column titles in the Table control populated programmatically. The different titles are separated by TAB characters. To specify the widths of the columns only, this parameter can correspond to an empty string ("").
<Width of columns>: Character string
List of all the column widths, separated by a space character. To specify the titles of the columns only, this parameter can correspond to an empty string ("").
Observaciones

Characteristics of the Table control populated programmatically

The number of columns in the Table control populated programmatically must be sufficient to accept all the columns of the query result.

Closing a query

A query is automatically closed:
  • once SQLTable has been executed if the partial Fetch is not used.
  • as soon as the query result is entirely retrieved if the Partial Fetch is used.
WINDEVCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos

Using the Partial Fetch

The current retrieval stops as soon as SQLClose is called or as soon as the window containing the Table control is closed.
The Partial Fetch can be used on several queries at the same time.
WINDEVCódigo de Usuario (UMC)HFSQL ClassicHFSQL Client/ServerHyper File 5.5OLE DBODBCConectores Nativos

The different types of queries

SQLTable associates a Table control populated programmatically with the queries created by SQLExec.
To associate a Table control populated programmatically with the queries created in the query editor (or with HExecuteSQLQuery), use FileToMemoryTable.
WINDEVCódigo de Usuario (UMC)ODBC

Retrieving Float items on Oracle (via ODBC)

By default, the decimal separator used for the Float items on Oracle is the dot. However, the ODBC driver returns the value by using the comma as decimal separator. The decimal places are lost when the value is assigned to a numeric control.
To avoid this problem, you must configure the decimal separator for the current connection:
// Connection to the Oracle database 
SQLConnect("MyOracleDatabase", "User", "Pass", "", "ODBC") 
// Request for changing the decimal separator 
SQLExec("ALTER SESSION SET NLS_NUMERIC_CHARACTERS ='. '", "TempQry")

Unicode management

You can define how Unicode will be managed in the project configuration ("Unicode" tab of the configuration description window):
  • If "Utilizar cadenas ANSI en ejecución" is selected: data is converted using the current character set.
    Reminder: ChangeCharset is used to modify the current character set.
  • If "Utilizar cadenas UNICODE en ejecución" is selected, the data is inserted without being converted.
Componente: wd300obj.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 28/03/2025

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