Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
...
Pagetitle |
---|
...
|
...
...
...
|
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
Bloco de código | ||
---|---|---|
| ||
MSParseFull( <cSQL> cSQL >, <cBD> cBD >, <@cErro> cError >, <@cSaida> cOut >, [lbIsQuery lIsQuery ] )--> iFunciona
|
Parâmetros
...
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cSQL |
...
caractere |
...
String SQL, escrita em MSSQL, que será convertida. | X |
|
cBD |
...
caractere |
...
Nome do SGBD para o qual será convertida a string SQL. |
...
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 string SQL convertida. |
...
ocorra erro |
...
no parser, visando auxiliar na localização do erro |
...
na string SQL original, o conteúdo parcial (até onde o parser ocorreu com sucesso) será atribuído a variável. | X |
...
|
...
lIsQuery |
...
lógico |
...
Se verdadeiro (.T.), indica que é uma query simples ( |
...
Select, por exemplo); caso contrário, |
...
Falso (.F.), |
...
será uma Procedure. |
|
|
...
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 := ""; local cErro
#INCLUDE 'TOTVS.CH' User Function TestParser() Local tSQL := "" Local sErro ; local cOut := "" Local sSql ; 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 if conout("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
|