Páginas filhas
  • MPSysOpenQuery

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 FWOpenTemp


 

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ão
P11 R1.0
 
P12


Sintaxe
FWOpenTempMPSysOpenQuery( cQuery , [cAlias] , <aStruct>[aSetField],[cDriver],[cNameaBindParam] ) -> cNamecAlias

Descrição
A função cria uma tabela temporária de acordo com a estrutura passada e já abre a tabela com o alias informado.
Retorna o nome com o qual a tabela foi criada.
Obs.:
Caso o ambiente possibilite a criação de tabelas temporárias no banco de dados, a mesma será criada lá. Com isto apenas a thread que o criou conseguirá manipulá-loAbre um alias com a query informada.

Parâmetros


 

NomeTipoDescriçãoDefaultObrigatórioReferência
cQueryCaractereQuery a ser executada
x
cAlias
Caracteres
Caractere

Alias

da tabela temporária

que será atribuida a query.

cName
GetNextAlias()
 


aSetField
 aStruct
Caractere

Array

Array

com os campos para execução de TCSetField com a estrutura

da tabela a ser criada. x cNameCaracteresNome da tabela.Será gerado um automaticamente  

 

Retorno

:
[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 cName Nome com o qual a tabela foi criada.

Exemplo
Veja o exemplo ExFWFOpenTemp.prw em anexo.


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 



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

Observações
Mesmo que tenha sido passado um nome como padrão para criação da tabela deverá ser avaliado o retorno da função, pois o nome pode ser alterado devido a criação de tabelas temporárias no banco de dados

.