Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
...
Pagetitle |
---|
...
|
...
...
...
|
Analisa
...
e converte uma Stored Procedure escrita em SQL ANSI, para um dos bancos de dados relacionais homologados.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
MSParseFull( <cSQL> cSQL >, <cBD> cBD >, <@cErro> cError >,< @cSaida>, [ lbIsQuery] ) --> iFunciona Parâmetros/Elementos < cOut > )
|
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cSQL |
...
caractere | Stored Procedure |
...
escrita em |
...
SQL ANSI, que será convertida. | X |
|
cBD |
...
caractere |
...
Nome do SGBD para o qual será convertida |
...
a Stored Procedure. |
...
SGBDs são |
...
aceitos por este parâmetro, consulte a |
...
seção "Observações". | X |
|
...
cError |
...
caractere |
...
Recupera a mensagem de erro, retornada pela função MSParseError(). |
...
| X |
...
|
...
cOut |
...
caractere |
...
Recupera a |
...
Stored Procedure convertida. |
...
ocorra erro |
...
no parser, visando auxiliar na localização do erro |
...
na procedure original, o conteúdo parcial (até onde o parser ocorreu com sucesso) será atribuído a variável. | X |
|
...
Retorno
...
Nome |
---|
...
...
Tipo | Descrição | |
---|---|---|
iRet | numérico | Retorna 1 (um), se a conversão ocorreu com sucesso |
...
; caso contrário, 0 (zero), |
...
indicando erro na conversão. |
Observações
Os bancos de dados relacionais aceitos
...
no segundo parâmetro (cBD)
...
são:
- INFORMIX
- DB2
- ORACLE
- MSSQL
- MYSQL
- POSTGRES ou POSTGRESQL
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
user function test()
local cSQL
#INCLUDE 'TOTVS.CH'User Function TestParser()Local tSQL := "" Local; localsErro cErro := ""Local ; localsSql cOut := ""; local cRet :=tSQL "0" cSQL += "create proc sp_Teste (@dtInicial char(10), @dtFinal char(18), @ben_id char(6)) " + chr(13)tSQL cSQL += "as " + chr(13)tSQL cSQL += "declare " + chr(13)tSQL cSQL += "@id @id integer = 1, " + chr(13)tSQL cSQL += " @din money, " + chr(13)tSQL cSQL += " @hoje date " + chr(13)tSQL cSQL += "begin " + chr(13)tSQL cSQL += " select distinct " + chr(13)tSQL cSQL += " j.nav_n2 navio, " + chr(13)tSQL cSQL += " isnull(g.proc_nome,'NAO DEVOLVIDO') local_dev, " + chr(13)tSQL cSQL += " dateadd(hour, 2, b.data_saida) " + chr(13)tSQL cSQL += " from tabela1 a, " + chr(13)tSQL cSQL += " tabela2 b " + chr(13)tSQL cSQL += " where a.dt_entrada between convert(datetime,@dtInicial,103) and convert(datetime,@dtFinal,103) " + chr(13)tSQL cSQL += " and a.cliente = b.cliente " + chr(13)tSQL cSQL += "end " + chr(13)tSQL cSQL += "go "saida cRet := msparsefull(tSQL cSQL, "INFORMIX",sErro cErro,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 ifconout("FIM")return Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server cOut)
conout("Resultado: " + IIF(cRet == "1", "Sucesso", "Falha") + chr(10) + "Erro encontrado(?): " + cErro)
if (cRet == '1')
msgInfo("Resultado: Sucesso!" + chr(10) + "String SQL Convertida:" + cOut)
else
msgInfo("Resultado: Falha!" + chr(10) + "Error: " + cErro + chr(10) + "Parcial: " + cOut)
end if
return
|