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