Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Incluído conceito de bind de queries
Composition Setup
import.css=/download/attachments/327912/newLayout.css



Aviso
titleImportante

O parâmetro aBindParam e o conceito de bind de queries só está disponível a partir da lib label 20211116

Função: MPSysOpenQuery


 

Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Português, Inglês, Espanhol
VersãoP12
 


Sintaxe
MPSysOpenQuery( cQuery , [cAlias] , [aSetField],[cDriver],[aBindParam] ) -> cAlias

Descrição
Abre um alias com a query informada.

Parâmetros
 


NomeTipoDescriçãoDefaultObrigatórioReferência
cQuery
Caracteres
CaractereQuery a ser executada
 

x
 

cAlias
Caracteres
Caractere

Alias que será atribuida a query.

GetNextAlias()
  


aSetField
Caracteres
Caractere

Array com os campos para execução de TCSetField com a estrutura:
[1] Nome do Campo
[2] Tipo
[3] Tamanho
[4] Decimal

   
 




cDriverCaracterDriver a ser utilizado. Somente aceita o driver TOPCONN ou os drivers nativos do SQLITE (SQLITE_SYS, etc)


aBindParamArrayArray com os campos para inserção via statement. Deve ser enviado na mesma ordem dos campos da query e todos devem ser enviados. Ele é obrigatório caso a query estava utlizando o conceito de bind (vide exemplo abaixo)




Retorno
cAlias Alias com o qual a query foi criada.

Exemplo


Bloco de código
user Function mybind()

Local cQuery        as character 
Local cAlias        as character 
Local aBindParam    as array 

cQuery := "SELECT E1_NUM FROM SE1T10 WHERE E1_FABOV = ? AND  D_E_L_E_T_ = ?"
cQuery := ChangeQuery(cQuery)

//os parametros DEVEM ser enviados na mesma ordem em que aparecem na query.
aBindParam := {'0', ' '}

cAlias  := MPSysOpenQuery(cQuery,,,,aBindParam)

(cAlias)->(DbCloseArea())

Return 

Bloco de código
titleExemplo sem bind
user Function MyOpen()

Local cQuery        as character 
Local cAlias        as character 

cQuery := "SELECT E1_NUM FROM SE1T10 WHERE E1_FABOV = '0' AND  D_E_L_E_T_ = ' '"
cQuery := ChangeQuery(cQuery)

cAlias  := MPSysOpenQuery(cQuery)

(cAlias)->(DbCloseArea())

Return 

Em breve...



Observações

Caso o alias passado já exista, o mesmo será fechado.

A alias atual não é alterada, ou seja, é necessário acessar a tabela via (cAlias)->CAMPO, ou efetuar um DbSelectArea(cAlias), e fazer o tratamento de salvar e restaurar área.