Função: MSParseFull
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.
MSParseFull ( < cSQL>, < cBD>, < @cErro>, < @cSaida>, [ lbIsQuery] ) --> iFunciona
Nome | Tipo | Descrição | Obrigatório | Referência |
cSQL | Caracter | Indica a string SQL, escrita em MSSQL, que será convertida. | X | |
cBD | Caracter | Indica o nome do banco de dados para o qual será convertida string SQL. Para saber quais bancos de dados são aceito por este parâmetro, consulte a área "Observações". | X | |
cErro | Caracter | Indica a mensagem de erro, retornada pela função MSParseError(). Caso vazio, nenhum erro foi retornado. | X | X |
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 | X |
lbIsQuery | Lógico | Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures. |
iFunciona
- (numerico)
- Retorna 1, se realizar a conversão corretamente; caso contrário, 0, se ocorrer erro na conversão.
Os bancos de dados relacionais aceitos, no segundo parâmetro (cBD) , são:
- Informix®
- IBM Universal Database® (DB2)
- Oracle®
- SyBase Adaptive Server®
- Microsoft SQL® ou Microsoft SQL7®
#INCLUDE 'TOTVS.CH'
User Function TestParser()
Local tSQL := ""
Local sErro := ""
Local sSql := ""
tSQL += "create proc sp_Teste (@dtInicial char(10), @dtFinal char(18), @ben_id char(6)) " + chr(13)
tSQL += "as " + chr(13)
tSQL += "declare " + chr(13)
tSQL += " @id integer = 1, " + chr(13)
tSQL += " @din money, " + chr(13)
tSQL += " @hoje date " + chr(13)
tSQL += "begin " + chr(13)
tSQL += " select distinct " + chr(13)
tSQL += " j.nav_n2 navio, " + chr(13)
tSQL += " isnull(g.proc_nome,'NAO DEVOLVIDO') local_dev, " + chr(13)
tSQL += " dateadd(hour, 2, b.data_saida) " + chr(13)
tSQL += " from tabela1 a, " + chr(13)
tSQL += " tabela2 b " + chr(13)
tSQL += " where a.dt_entrada between convert(datetime,@dtInicial,103) and convert(datetime,@dtFinal,103) " + chr(13)
tSQL += " and a.cliente = b.cliente " + chr(13)
tSQL += "end " + chr(13)
tSQL += "go "
saida := msparsefull(tSQL,"INFORMIX",sErro,sSql)
//saida := msparsefull(tSQL,"ORACLE",sErro,sSql)
//saida := msparsefull(tSQL,"MSSQL",sErro,sSQL)
//saida := msparsefull(tSQL,"DB2",sErro,sSQL)
//saida := msparsefull(tSQL,"SYBASE",sErro,sSQL)
conout("Funciona: ")
conout(saida)
conout("Erro encontrado: ")
conout(sErro)
if (saida = '0')
alert("Saida:"+sSql)
else
conout("Saida:")
conout(sSql)
end if
conout("FIM")
return
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas