Página 1 de 1

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Jue Sep 17, 2009 6:40 pm
por jose.luis
Ignacio,
Si el recordset viene vacío no me devuelves el nombre de las columnas.
Saludos,
José Luis Capel

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Jue Sep 17, 2009 7:06 pm
por ignacio
José Luis,
Me temo que es Ado el que no lo devuelve.
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:4ab2668b$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ignacio,
>
> Si el recordset viene vacío no me devuelves el nombre de las columnas.
>
> Saludos,
> José Luis Capel
>
>
>

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Jue Sep 17, 2009 7:12 pm
por jasm.quitaesto
Jose Luis
Yo resuelvo eso haciendo una consulta de una sola fila.
Saludos
Alf+.
José Luis Capel - Aicom escribió:
> Ignacio,
>
> Si el recordset viene vací­o no me devuelves el nombre de las columnas.
>
> Saludos,
> José Luis Capel
>
>

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Jue Sep 17, 2009 7:44 pm
por jose.luis
Ignacio,
>
> Me temo que es Ado el que no lo devuelve.
>
Prueba este código:
METHOD QueryArray( cCommand, aHeaders ) CLASS XAdoDataSource
LOCAL oRS, oError
LOCAL aBuffer, aFields
LOCAL nFor, nFields
IF ! ::CheckConnection()
RETURN {}
ENDIF
aBuffer := {}
TRY
oRS := TOleAuto():New( "ADODB.RecordSet" )
CATCH oError
::NewError( oError:Description, oError:SubCode,, "ADODB:RecordSet" )
END
TRY
oRS:Open( cCommand, ::oConnection, adOpenForwardOnly, adLockReadOnly,
adCmdText )
CATCH oError
::NewADOError( "ADODB:RecordSet:Open( '" + cCommand+ "' )" )
oRS := NIL
RETURN aBuffer
END
WITH OBJECT oRS
IF :RecordCount > 0
aBuffer := :GetRows()
ENDIF
IF Pcount() > 1
nFields := :Fields:Count
aHeaders := Array( nFields )
FOR nFor := 1 TO nFields
aHeaders[ nFor ] := :Fields( nFor - 1 ):Name
NEXT
ENDIF
:Close()
END WITH
oRS := NIL
RETURN aBuffer
Saludos,
José lUis Capel

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Jue Sep 17, 2009 8:28 pm
por ignacio
José Luis,
Supongo que a ti te funciona y ya lo he corregido con tu sugerencia.
Gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:4ab2755b$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ignacio,
>
>
>>
>> Me temo que es Ado el que no lo devuelve.
>>
>
> Prueba este código:
>
>
> METHOD QueryArray( cCommand, aHeaders ) CLASS XAdoDataSource
>
> LOCAL oRS, oError
> LOCAL aBuffer, aFields
> LOCAL nFor, nFields
>
> IF ! ::CheckConnection()
> RETURN {}
> ENDIF
>
> aBuffer := {}
>
> TRY
> oRS := TOleAuto():New( "ADODB.RecordSet" )
> CATCH oError
> ::NewError( oError:Description, oError:SubCode,, "ADODB:RecordSet" )
> END
>
> TRY
> oRS:Open( cCommand, ::oConnection, adOpenForwardOnly, adLockReadOnly,
> adCmdText )
> CATCH oError
> ::NewADOError( "ADODB:RecordSet:Open( '" + cCommand+ "' )" )
> oRS := NIL
> RETURN aBuffer
> END
>
> WITH OBJECT oRS
> IF :RecordCount > 0
> aBuffer := :GetRows()
> ENDIF
> IF Pcount() > 1
> nFields := :Fields:Count
> aHeaders := Array( nFields )
> FOR nFor := 1 TO nFields
> aHeaders[ nFor ] := :Fields( nFor - 1 ):Name
> NEXT
> ENDIF
> :Close()
> END WITH
>
> oRS := NIL
>
> RETURN aBuffer
>
>
> Saludos,
> José lUis Capel
>
>
>

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Vie Sep 18, 2009 7:40 am
por Toni Sales
Ignacio
Sugiero que este tipo de cambios los publiqueis en versiones anteriores a la
2.0. Nosotros estamos utilizando todavia la 1.98 y creo que tardaremos algun
tiempo todavía en hacer el cambio, sobretodo porque nos toca revisar
muuuuuchas lineas de código y no veo el momento.
Saludos
Toni Sales

AdoDatasource:QueryArray( cSelect, @aHeaders) no devuelve el array con los nombres de las columnas

Publicado: Vie Sep 18, 2009 12:27 pm
por ignacio
Toni,
Me temo que no vamos a publicar más versiones de Xailer 1.9. Te sugiero que
incorpores tu mismo esas modificaciones a la biblioteca Xailer.lib de la
versión 1.9.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Toni Sales" <toni.sales@gmail.com> escribió en el mensaje
news:[email=4ab31d24@svctag-j7w3v3j....]4ab31d24@svctag-j7w3v3j....[/email]
> Ignacio
> Sugiero que este tipo de cambios los publiqueis en versiones anteriores a
> la 2.0. Nosotros estamos utilizando todavia la 1.98 y creo que tardaremos
> algun tiempo todavía en hacer el cambio, sobretodo porque nos toca revisar
> muuuuuchas lineas de código y no veo el momento.
>
> Saludos
> Toni Sales
>
>