Receber valores de uma consulta

Eu tenho esse codigo que deve receber o valor de que a consulta retorna em cada campo da tabela SF2, mas ao inves de retornar o valor, ele ta retornando o nome do campo, como eu arrumo isso? Acredito que o problema esteja nas ultimas 5 linhas

Local aCampSF2 := FWSX3Util():GetAllFields('SF2', .F.)

cQuery := "SELECT DISTINCT " +;

" * " +;

"FROM " +;

RetSqlName("SF2") + " sf2 " +;

RetSqlName("SF3") + " sf3 " +;

RetSqlName("ZZ5") + " zz5 " +;

"WHERE " +;

"f2_filial = '" + cCodFilial + "' " +;

"AND " +;

"f2_doc = '" + cDoc + "' " +;

"AND " +; "f2_serie = '" + cSerie + "' " +;

"AND "+;

"f2_emissao = '" + cDtEmi + "' " +;

"AND " +;

"sf2.de_l_e_t = '*' "

//Criar alias temporário cAliasQry := MPSysOpenQuery(cQuery)

For nI := 1 To Len(aCampSF2)

aAdd(aDados, {(cAliasQry)->(aCampSF2[nI])})

Alert(cValToChar(aDados[nI, 1])

Next nI

Alert(Len(aDados))

1 curtida

Nossa cara tem muito erros nesse script

1 curtida

Precisa mesmo retornar todos os campos destas 3 tabelas?

1 curtida

Sim eu preciso de todos os campos, e pode me falar mais ou menos onde estão os erros?

1 curtida

Local aCampSF2 := FWSX3Util():GetAllFields('SF2', .F.)

cQuery := "SELECT DISTINCT "
cQuery :+ " * " 
cQuery :+ "FROM "
cQuery :+ RetSqlName("SF2") + " SF2 " 
cQuery :+ RetSqlName("SF3") + " SF3 " 
cQuery :+ RetSqlName("ZZ5") + " ZZ5 " 
cQuery :+ "WHERE " 
cQuery :+ "F2_FILIAL = '" + cCodFilial + "' " 
cQuery :+ "AND F2_DOC = '" + cDoc + "' " 
cQuery :+ "AND F2_SERIE = '" + cSerie + "' " 
cQuery :+ "AND F2_EMISSAO = '" + cDtEmi + "' " 
cQuery :+ "AND SF2.D_E_L_E_T_ = '' "

//Criar alias temporário cAliasQry := MPSysOpenQuery(cQuery)

For nI := 1 To Len(aCampSF2)

aAdd(aDados, {(cAliasQry)->(aCampSF2[nI])})

Alert(cValToChar(aDados[nI, 1])

Next nI

Alert(Len(aDados))

DICAS: SQL É CASESENSITIVE, MESMO EU DANDO ESSA ARRUMADINHA NESSE SCRIPT, AINDA ACREDITO QUE ELE NAO FUNCIONE, VOCÊ ESTA QUERENDOO CONSULTAR 3 TABELAS DE 1 VEZ, SEM AMARRAÇÃO SEM NADA. QUANDO O DELET EM O * QUER DIZER QUE O DADO JÁ FOI "DELETADO".

1 curtida

A consulta completo retorna apenas um valor pra cada campo, porque nela tem inner joins, ai eu preciso que o valor que vai retornar em cada campo seja passado para uma posição na lista aDados

1 curtida