Permite a abertura de uma query diretamente no banco de dados utilizado na conexão atual, mediante uso da RDD TOPCONN, informando através de um array de parâmetros os conteúdos dos campos para fazer BIND de valores na Query informada.

Sintaxe

TCGenQry2( < xPar1 >, < xPar2 >, < cQuery >, < aValues > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

xPar1

Nil

Compatibilidade.

X


xPar2

Nil

Compatibilidade.

X


cQuery

character

String contendo a query que será aberta.

X


aValues

array

Array de strings para fazer BIND dos parâmetros.

X


Retorno

Nome

Tipo

Descrição

cRet

character

Retorna sempre uma string vazia.

Observações


Esta função não está disponível para uso com RPODB=SQLITE.

Exemplos

#include 'totvs.ch'
#include 'topconn.ch'
 
USER FUNCTION TEST()
 
Local cAlias := "QRY"
Local cTable1 := "T1"
Local cQry   := "SELECT CPOC1, CPOC2 FROM T1 WHERE T1.CPOC2 = ? "
 
TCLink()
 
IF TcCanOpen(cTable1)
    TCDelFile(cTable1)
Endif
 
DBCreate(cTable1, {{"CPOC1", "C", 10, 0}, ;
                   {"CPOC2", "C", 10, 0}}, "TOPCONN")
 
DBUseArea(.T., "TOPCONN", cTable1, (cTable1), .F., .F. )
 
(cTable1)->( DBAppend( .F. ) )
(cTable1)->CPOC1 := "JOHN"
(cTable1)->CPOC2 := "PESSOA"
(cTable1)->( DBCommit() )
 
DBCloseArea()
 
DBUseArea(.T., "TOPCONN", TCGenQry2(NIL,NIL,cQry, { "PESSOA" } ), (cAlias) , .F., .T. )
 
WHILE !Eof()
    CONOUT("CPOC1 = " + (cAlias)->CPOC1)
    CONOUT("CPOC2 = " + (cAlias)->CPOC2)
    DbSkip()
ENDDO
 
DBCloseArea()
 
TCUnlink()
 
RETURN

Veja também