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
  • Funciones SQLCol y SQLGetCol: diferentes tipos de navegación
  • fila actual en la consulta
  • Consulta sin resultado
  • Uso de tabulaciones en los ítems
  • Recuperación de posiciones flotantes en Oracle (mediante ODBC)
  • Gestión de los espacios al final de los elementos de texto
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
Recupera el contenido de la columna especificada del resultado de la consulta, para la actual Line.
Atención: Esta función debe utilizarse durante la navegación del resultado de la consulta de tipo SQLFirst/SQLCol. Para obtener más información, consulte Tipos de navegación SQL.
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>: Cadena de caracteres
Valor de la columna.
<Query name>: Cadena de caracteres
Nombre de la consulta:
<Column number>: Integro
Número de la columna a recuperar. Esta columna corresponde a una columna de consulta (y no a una columna tabla). El orden de los números para que las columnas se recuperen no es importante..
Observaciones

Funciones SQLCol y SQLGetCol: diferentes tipos de navegación

Las funciones SQLCol y SQLGetCol son equivalentes durante un acceso OLE DB o HFSQL. Sin embargo, debe respetar el tipo de navegación associated con cada una de estas funciones:
  • función SQLCol: Navegación "SQLFirst/SQLCol".
  • función SQLGetCol: "SQLFetch/SQLGetCol" navegar.
Para obtener más información, consulte Tipos de navegación SQL.

fila actual en la consulta

Para posicionarse en una Line de la consulta, utilice una de las siguientes funciones: SQLFirst, SQLNext, SQLPrevious, SQLLast o SQLSeek.

Consulta sin resultado

SQLCol no debe llamarse si la consulta no devuelve un resultado: la variable SQL.Out debe probarse una vez que la posición ha sido set en el resultado de la consulta, antes de llamar a SQLCol.
Por ejemplo:
// 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)

Uso de tabulaciones en los ítems

Las funciones SQL se utilizan para insertar tabulaciones en los elementos de archivo. La gestión de las tabulaciones depende del modo de acceso utilizado.
1er caso: Ejecutar una consulta en ODBC:
  • Al ejecutar una consulta con ODBC, SQLCol no devuelve pestañas. Para get el valor de las partidas (con Tabs), utilice SQLFetch/SQLGetCol.
  • Cuando se ejecuta una consulta en ODBC, se eliminan los caracteres de espacio que se encuentran al final del valor de los elementos.. Para mantener todos los caracteres de espacio, le recomendamos que utilice SQLFetch/SQLGetCol.
Ejemplo: SQLAssociate y las tabulaciones en los ítems
Los elementos de los registros a recuperar son los siguientes:
Tema 1Tema 2
Record 1JuanSmith
Record 2John + tab + MacRosquillas
Para el primer Record:
  • SQLCol( Qry1, 1): recupera a John
  • SQLCol( Qry1, 2): recupera a Smith
Para el segundo Record:
  • SQLCol( QRY,1 ): recupera a John
  • SQLCol( QRY, 2): recupera Mac, pero Mac no corresponde al valor del segundo elemento
  • SQLCol( QRY, 3): recupera Doughnut, valor del segundo elemento
2º caso: Ejecutar una consulta a través de OLEDB, HFSQL o Conector Nativo
SQLCol recupera automáticamente las fichas en los elementos de resultado.
WINDEVODBC

Recuperación de posiciones flotantes en Oracle (mediante ODBC)

Por Default, el separador decimal usado para los elementos de la Flota en el Oráculo es el punto. Sin embargo, el controlador ODBC devuelve el valor utilizando la coma como separador decimal. Los decimales se pierden cuando se asigna el valor a un control numérico.
Para evitar este problema, debe configurar el separador decimal para la conexión actual:
// 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

Gestión de los espacios al final de los elementos de texto

La gestión de los espacios al final de los artículos recuperados depende del modo de acceso utilizado:
  • Conectores Nativos para SQLServer, ORACLE, AS400, SyBase; y acceso a los datos de HFSQL Client/Server o HFSQL Classic: los espacios al final del artículo se eliminan automáticamente.
  • Conectores Nativos para Access, MySQl, MariaDB, Informix, DB2, Progress, PostgreSQL, SQLite, ODBC o OleDB: los espacios al final del artículo se mantienen.
Consejo: Para no mantener los espacios a la derecha en todos los casos, es posible override la función declarando una Procedure global:
PROCEDURE SQLCol(source, index)
RESULT NoSpace(WL.SQLCol(source, index), sscRight)
Componente: wd290hf.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/05/2022

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