Bom dia a todos, grato pelos retornos.
Até ontem a tarde eu consegui fazer algo que me ajudou muito, bom acho eu que sim, agora não sei mais pra frente com pesquisas diferentes.
Veja o que eu produzi com as contribuições de todos, desta forma abaixo eu consigo pegar os valores de uma forma limpa, talvez tenha forma melhor de se fazer mas esta foi a forma que eu consegui montar e funcionou.
Esta parte seleciona as taxas do sistema ao entrar.
//parte principal do sistema
.....
oSQL_Temp := DB_SQL_SELECT("TB_TAXA","*","") //CADASTRO DE TAXAS
If Len(oSQL_Temp) > 1 //se tiver retorno fica valendo SQL
aDataTaxa := DB_SQL_Fields(oSQL_Temp,"DATA")
wPJuros := DB_SQL_Fields(oSQL_Temp,"JUROS")
wG_JurosM := DB_SQL_Fields(oSQL_Temp,"JUROSM")
wG_Multa := DB_SQL_Fields(oSQL_Temp,"MULTA")
wG_MultaM := DB_SQL_Fields(oSQL_Temp,"MULTAM")
Else //antigo
//DBF
NetUseFile("CDOC0900",{"CDOC0900"},.T.,,,,,,,wD_Geral) //CADASTRO DE TAXAS
DbGoBottom()
aDataTaxa:=DATA
wPJuros :=JUROS
wG_JurosM:=JUROSM
wG_Multa :=MULTA
wG_MultaM:=MULTAM
DbCloseArea()
EndIf
....
Function DB_SQL_Select(oTabela,oPesquisa,oCondicao) //MODIFICADA PARA FUNCIONAR PRA MIM
// retorna a matriz com os campos
local a , b , c
local mx:={}; xtabela:=otabela ; xpesquisa:=oPesquisa; xcondicao:=ocondicao ; Mret:={} ; _erro:=""
acampos:=FB_PegaCampos(oTabela) //contribuição
StrSql:="select &xpesquisa from &xtabela &xcondicao;"
If !Empty(oSQL_CnnDB) .And. Empty( _erro:=FB_Executa() )
mx:=&(oSQL_Conect):aRecordSet
If Len(mx)>0 //se nao tiver retorno nao consulta
mRet:=Array(Len(mx)+1,Len(mx[1])) //DECLARA A ARRAY NO TAMANHO TOTAL DO RETORNO M +1, deixando a primeira linha para os campos
For a:= 1 To Len(aCampos)
mRet[1][a]:=aCampos[a] //PRIMEIRA LINHA DA ARRAY FICA PARA O NOME DOS CAMPOS
Next
For b:= 1 To Len(mx)
For c:= 1 To Len(mx[b])
mRet[b+1][c]:=mx[b,c] //atribui os conteudos na mesma sequencia
Next
Next
EndIf
Else
ShowMessage(,,_erro,5)
EndIf
Return Mret
Function DB_SQL_Fields(omSQL,oCampo,oNPos)
Local nPosCampo:=1
Local ia, oConteudo
oNPos:=If(oNPos=Nil,2,oNPos)
For ia:=1 To Len(omSQL[1])
If Upper(AllTrim(omSQL[1,ia])) == oCampo
nPosCampo:=ia
Exit
EndIf
Next
Return omSQL[oNPos,nPosCampo]
Grato a todos.