Child pages
  • LQUERY-GET-EXECUTE

Executa uma query SQL no banco de dados, permitindo limitar e paginar os registros encontrados.

Sintaxe

_ADVPL_get_property(< cReference >,"EXECUTE",< cSql >,< aRecord >,[ nIni ],[ nCount ]) => SMALLINT

Parâmetros

NomeTipoDescriçãoObrigatório?Padrão
cSqlCHAR(10000)Query SQL que será executada e manipulada pelo componente.Sim 
aRecordARRAY OF RECORDARRAY OF RECORD onde serão salvos os dados encontrados na consulta.1
Sim 
nIniINTEGERNúmero do registro inicial para paginação dos registros encontrados na consulta.Não1
nCountINTEGERQuantidade máxima de registros que devem ser retornadas na consulta.2
Não 

1 Após a execução da query, o aRecord é redimensionado para conter apenas a quantidade de registros encontrados.
2
Se informado nulo para o parâmetro nCount, serão retornados todos os registros encontrados na consulta.

Retorno

TipoDescrição
SMALLINTRetorna verdadeiro se o SQL foi executado com sucesso.

Exemplo

Exemplo SQLCODE
#------------------------------------------------------------------------------#
FUNCTION LQUERY_teste()
#------------------------------------------------------------------------------#
    DEFINE l_component VARCHAR(10)
    DEFINE l_sql_stmt CHAR(500)
    DEFINE l_status SMALLINT

    DEFINE la_menu_logix ARRAY[10] OF RECORD LIKE menu_logix.*

    INITIALIZE la_menu_logix TO NULL

    # Monta o SQL que será executado pelo componente.
    LET l_sql_stmt = "SELECT cod_sistema,",
                            "cod_nivel_1,",
                            "cod_nivel_2,",
                            "cod_nivel_3,",
                            "num_sequencia,",
                            "cod_processo,",
                            "cod_tip_processo,",
                            "cod_help,",
                            "cod_transacao,",
                            "den_transacao,",
                            "chave_sistema",
                      " FROM menu_logix",
                     " WHERE cod_processo IS NOT NULL",
                     " ORDER BY cod_processo"

    # Executa a consulta acima permitindo retornar no máximo 10 registros a partir do 1o.
    LET l_component = _ADVPL_create_component(NULL,"LQUERY")
    LET l_status = _ADVPL_get_property(l_component,"EXECUTE",l_sql_stmt,la_menu_logix,1,10)

    CALL _ADVPL_destroy_component(l_component)
    LET l_component = NULL

    RETURN l_status
END FUNCTION