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
  • SQLCol and SQLGetCol functions: different path types
  • Current row in the query
  • Query without result
  • Using tabulations in the items
  • Retrieving Float items on Oracle (via ODBC)
  • Managing spaces at the end of text items
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
Retrieves the content of the specified column from the query result, for the current line.
Warning This function must be used when browsing the result of a query of type SQLFirst/SQLCol query result.. For more details, see Types of SQL browse.
Ejemplo
ResExec = SQLExec("SELECT CUSTNAME FROM INVOICE", "QRY1")
IF ResExec = True THEN
	SQLFirst("QRY1")
	// Transfer the name into LIST_NAME
	WHILE NOT SQL.Out
		ListAdd(LIST_NAME, SQLCol("QRY1", 1))
		SQLNext("QRY1")
	END
ELSE
	// ProcessError
END
SQLClose("QRY1")
Sintaxis
<Result> = SQLCol(<Query name> , <Column number>)
<Result>: Character string
Value of the column.
<Query name>: Character string
Name of the query:
<Column number>: Integer
Number of the column to retrieve. This column corresponds to a query column (and not to a table column). The order of the numbers for the columns to retrieve is not important.
Observaciones

SQLCol and SQLGetCol functions: different path types

SQLCol and SQLGetCol are equivalent during an OLE DB or HFSQL access. However, you must respect the type of browse associated with each one of these functions:
  • Function SQLCol: "SQLPremier/SQLCol" type path.
  • Function SQLGetCol: "SQLFetch/SQLGetCol" type path.
For more details, see Types of SQL browse.

Current row in the query

To position yourself on a line of the query, use one of the following functions: SQLFirst, SQLNext, SQLPrevious, SQLLast or SQLSeek.

Query without result

The function SQLCol FUNCTION function must not be called if the query has not returned any results: you must test the variable SQL.Outside variable after positioning yourself in the query result and before calling function SQLCol FUNCTION.
For example:
// Retrieve the value of the 1st column for the 1st record
Value is string
QueryText is string
QueryText = "SELECT CUSTNAME, ADDR1, ADDR2, CITY, ZIP FROM INV"
SQLExec(QueryText, "QRY1")
Value = SQLCol("QRY1", 1)

Using tabulations in the items

The SQL functions are used to insert tabulations into the file items. The management of tabulations depends on the access mode used.
Case 1: Executing an ODBC query:
  • When executing a query with ODBC, SQLCol does not return tabs. To get the value of the items (with Tabs), use SQLFetch/SQLGetCol.
  • When running a query in ODBC, the space characters found at the end of the value of items are removed. To keep all the space characters, we recommend that you use SQLFetch/SQLGetCol.
Example: SQLAssociate and the tabulations in the items
The items of the records to retrieve are as follows:
Item 1Item 2
Record 1JohnSmith
Record 2John + tab + MacDoughnut
For the first record:
  • SQLCol(Req1, 1): recovers John
  • SQLCol(Req1, 2): recovers Smith
For the second record:
  • SQLCol(REQ,1 ): recovers John
  • SQLCol(REQ, 2): retrieves Mac, but Mac does not match the value in the second field
  • SQLCol(REQ, 3): retrieves Doughnut, value of second item
Case 2: Executing a query via OLEDB, HFSQL or Native Connector
SQLCol automatically retrieves the tabs in the result items.
WINDEVODBC

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")
WINDEVODBC

Managing spaces at the end of text items

The management of spaces at the end of the retrieved items depends on the access mode used:
  • Native SQLServer, ORACLE, AS400, SyBase connectors, and access to HFSQL Client/Server or HFSQL Classic data: spaces are automatically removed at the end of the section.
  • Native Access, MySQl, MariaDB, Informix, DB2, Progress, PostgreSQL, SQLite, ODBC or OleDB connectors: trailing spaces are retained.
Tip To avoid keeping spaces on the right in all cases, it is possible to override the function by declaring a global procedure:
PROCEDURE SQLCol(source, index)
RETURN NoSpace(WL.SQLCol(source, index), sscRight)
Componente: wd300hf.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: 27/03/2025

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