FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Estructura de un Rowset (SOLUCIONADO)
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Estructura de un Rowset (SOLUCIONADO)
Posted: Thu Jun 12, 2025 12:36 PM
Buenos días gente del foro
Como siempre con alguna preguntita.
De que manera podría obtener un resultado similar a DBStruct con un Rowset.
Es decir volcar los campos y sus características en un array?
Desde ya gracias por vuestro apoyo incondicional!! :D
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 01:11 PM

Hi Jose,

Try xBrowse( oRs:aStructure )

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 01:43 PM
vilian wrote: Hi Jose,

Try xBrowse( oRs:aStructure )
Thanks for your reponse but, it doesn't work, I got an error 'Method does not exist'
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 02:45 PM

How are you creating your rowset?

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 03:23 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 04:17 PM

Gracias por sus respuestas, pero no me ha funcionado, debe tomarse en cuenta que se trata de un rowset obtenido de una consulta mysql, no de cargar una tabla.

Lo que quiero obtener es las características de las columnas del rowset, no de una tabla en específico.

Quizá por eso no me resulta.

Ideas?

Gracias desde ya.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 04:34 PM

no te funciona usando Query en lugar de RowSet?

oQry := oCon:Query( "SELECT * FROM config LIMIT 1" )

aSt := oQry:aStructure

oQry:END()

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 61
Joined: Wed Jul 26, 2023 12:08 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 06:56 PM
Dear Jose,

Please try,

from DB:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'client' and table_schema = 'test'

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'client' and table_schema = 'test'

from oRS:
xBrowse( oRS:aFullCols )
or
SHOW FULL COLUMNS FROM " + cTable + " IN " + cDB + " WHERE FIELD IN " + cField

Best regards,
Ertan
Best regards,
Ertan,

ertan_ozturk@yahoo.com
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Estructura de un Rowset
Posted: Thu Jun 12, 2025 10:58 PM
Estimado José,

Si entendí bien tu pregunta, lo que quieres no es tan fácil, en el aspecto de que hay detalles que afinar al cual habría que dedicarle mucho tiempo.

Aquí te dejo una idea que te puede servir de punto de partida. Espero haber entendido tu inquietud, solo que yo uso TDOLPHIN y creo que tu usas la clase nativa:
#Include "Cuentas32.ch"

**************************************************************************************************************************************
function Fnct_Prueba()

	local oQuery
	local cTabla, cQuery
	local nColumna
	local aItems

	if !_Conecta()
 	  return .f.
        endif

	cTabla    := _cPrefijo+"_recargascredito"
	cQuery    := "Select * from "+cTabla+" ;"

	TRY
               oQuery:=_oSqlConex:Query( cQuery )
	CATCH
	 	Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
		_Close()
	 	return .f.
	END TRY

	aItems    :={}
	aItems:=oQuery:fillArray()

	cQuery := "CREATE TEMPORARY TABLE tabla_tmp ("  +CRLF

	for nColumna := 1 TO Len(aItems[1])
            cQuery += "campo" + alltrim(Str(nColumna)) + " " + Fnct_DataType(aItems[1,nColumna]) + ", "  +CRLF
        next

        cQuery := Left(cQuery, Len(cQuery) - 4)+ ")"

 	TRY
                _oSqlConex:Execute( cQuery )
	CATCH
	 	Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
		_Close()
	 	return .f.
	END TRY

   Fnct_ShowEstruct("tabla_tmp")

return NIL

//////////////////////////////////////////////////////
Function Fnct_DataType(valor)

    if ValType(valor) == "N"
        return "DECIMAL(10,2)"
    elseif ValType(valor) == "D"
        return "DATE"
    elseif ValType(valor) == "L"
        return "BOOLEAN"
    else
        return "VARCHAR(255)" // Por defecto, texto
    endif

return  NIL

//////////////////////////////////////////////////////
Function Fnct_ShowEstruct(cTablaTemp)

	local oQuery
	local cQuery

	cQuery := "DESCRIBE " + cTablaTemp

	TRY
		oQuery := _oSqlConex:Query( cQuery )
		_oSqlConex:NextResult()
	CATCH
	 	Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión a La Base de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
		_Close()
	 	return .f.
	END TRY

	xBrowse(oQuery)

return  NIL
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Estructura de un Rowset
Posted: Fri Jun 13, 2025 07:09 AM
En FWH\samples\FiveDbu.prg se muestra claramente como hacerlo:

aFields := FWAdoStruct( oBrwParent:oRs )

Busca esta línea dentro de FiveDBU.prg y está todo el código de como mostrar un browse con la estructura :idea:
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Estructura de un Rowset
Posted: Mon Jun 16, 2025 12:14 PM
Gracias a todos por su ayuda.
Efectivamente la solución de Antonio hace exactamente lo que necesito.
Me siento muy agradecido por tanto apoyo y ayuda a la hora de las dudas y los desafíos de la programación cuando uno ya se torna algo viejito :D .
un fuerte abrazo para todos, disculpen la demora en escribir, pero es que estuve enfermo.

Thanks to everyone for your help.
Antonio's solution does exactly what I need.
I'm very grateful for all the support and help when it comes to programming questions and challenges when I'm getting a bit older :D .
A big hug to everyone. Sorry for the delay in writing, but I was sick.
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"

Continue the discussion