MSParseFull [AS]

MSParseFull [AS]
Author: Eurai
Inclusão: 01/01/2016
Alteração: 27/07/2021

Descrição

Analisa uma string SQL – Structured Query Language, escrita em MSSQL – Microsoft Structured Query Language, e converte para a sintaxe de um dos bancos de dados relacionais homologados..

 

Sintaxe

MSParseFull( <cSQL>, <cBD>, <@cErro>, <@cSaida>, <lbIsQuery> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
cSQL
Caracter
Indica a string SQL, escrita em MSSQL, que será convertida
  X  
02 cBD
Caracter
Indica o nome do banco de dados para o qual será convertida string SQL
  X  
03 cErro
Caracter
Indica a mensagem de erro, retornada pela função MSParseError(). Caso vazio, nenhum erro foi retornado
    X

04

cSaida
Caracter
Indica a string SQL convertida. Caso tenha ocorrido erro, o retorno será apenas até onde foi realizada a conversão para auxiliar na localização do erro no SQL original
    X
05 lbIsQuery
Boolean
Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures
     

 

Retorno

Retorno Tipo Descrição
nRet Numérico
Retorna 1, se realizar a conversão corretamente; caso contrário, 0, se ocorrer erro na conversão

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function MSParseFull()
Local cQuery	:= ""
Local cErro		:= ''
Local cRet		:= ''


cQuery := "create proc sp_Teste (@dtInicial char(10), @dtFinal char(18), @ben_id char(6)) " + chr(13)
cQuery += "as " + chr(13)
cQuery += "declare " + chr(13)
cQuery += "	@id		integer = 1, " + chr(13)
cQuery += "	@din	money, " + chr(13)
cQuery += "	@hoje	date " + chr(13)
cQuery += "begin " + chr(13)
cQuery += "    select distinct " + chr(13)
cQuery += "           j.nav_n2 navio, " + chr(13)
cQuery += "           isnull(g.proc_nome,'NAO DEVOLVIDO') local_dev, " + chr(13)
cQuery += "			dateadd(hour, 2, b.data_saida) " + chr(13)
cQuery += "    from   tabela1 a, " + chr(13)
cQuery += "           tabela2 b " + chr(13)
cQuery += "    where a.dt_entrada between convert(datetime,@dtInicial,103) and convert(datetime,@dtFinal,103) " + chr(13)
cQuery += "    and a.cliente = b.cliente " + chr(13)
cQuery += "end " + chr(13)
cQuery += "go "

MSParseFull( cQuery,"INFORMIX", @cErro, @cRet )

If !Empty( cErro )

	Conout( 'Erro: ' + cErro )

Else

	Conout( 'Retorno: ' + cRet )
	
Endif

Return( Nil )

Resultado
msparsefull_-_resultado_01                                       

 

 

Informações adicionais

 

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários