Histórico da Página
...
Portuguese | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: TCGenQryPermite a execuçãoabertuda de uma querystring diretamente no banco de dados SGBD utilizado na conexão atual, mediante uso da RDD TOPCONN. O retorno desta função deve ser passado como o 3o parâmetro da função DbUseArea() -- que corresponderia ao nome da tabela. TCGenQry ( [ xPar1], [ xPar2], < cQuery> ) --> cRet
cRet
Essa função determina que a próxima chamada à função DBuseArea() será a abertura de uma query na conexão atual com um SGBD, e não de uma tabela física, quando utilizada a RDD "TOPCONN". Devido à dependência direta da chamada subsequente da função DbUseArea() para a abertura efetifva da query, foi adotada a convenção de chamar a função TCGenQry() como terceiro parâmetro para a função DbUseArea() . A string contendo a query a ser aberta é enviada diretamente ao DBAccess, que por sua vez fará a execução do statement diretamente no SGBD em uso pela conexão, fará um "describe" das colunas de retorno do statement, e retornará em caso de sucesso a definição de colunas retornadas pela query. O Application Server, por sua vez, ao receber a confirmação de sucesso da operação e a definição de colunas, vai abrir a query como se fosse uma tabela física normal, sob o alias especificado como parâmetro para a função DbUseArea(), onde a estrutura de dados dessa tabela "virtual" corresponde a uma definição similar à retornada pela função DBStruct(). Logo, ao abrirmos uma query no AdvPL, podemos retornar diretamente apenas campos "caractere" (Char ou VarChar do SGBD) e numéricos (INT e/ou FLOAT). Caso alguma coluna selecionada não atenda estes quesitos, ela será removida da estrutura de retorno no momento da abertura da query. User Function LeSX2() O mesmo exemplo acima, a função DbUseArea() poderia ser substituída pelo comando USE, com a seguinte sintaxe: USE (TcGenWry(,,cQuery)) ALIAS TRB NEW VIA "TOPCONN" Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
|