Descrição
MSParse [AS] - Analisa e converte uma string SQL – Structured Query Language, escrita em MSSQL – Microsoft Structured Query Language, para um dos bancos de dados relacionais homologados..
|
Sintaxe
| MSParse( <cSQL>, <cBD>, <lIsQuery> ) |
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 – Structured Query Language
|
|
X |
|
| 03 |
lIsQuery
|
Boolean
|
Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures
|
|
|
|
Retorno
| Retorno |
Tipo |
Descrição |
| cRet |
Caracter
|
Retorna a string SQL convertida para o banco em questão, ou retorna uma string vazia caso exista algum erro ou impossibilidade na conversão da procedure
|
Exemplo
#INCLUDE "TOTVS.CH"
User Function MSParse()
Local cQuery := ""
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 "
Conout( 'Parse: ' + MSParse(cQuery,"INFORMIX") )
Conout( 'Erro: ' + MSParseError() )
Return( Nil )
Resultado
Informações adicionais
- Recomendado a utilização da função MSParseFull(), pois contempla todas as características dessa função com mais funcionalidades
- Os bancos de dados relacionais aceitos, no segundo parâmetro , são:
- "INFORMIX", para bancos de dados Informix®
- "DB2 " , para IBM Universal Database® (DB2)
- "ORACLE", para bancos de dados Oracle®
- "SYBASE", para SyBase Adaptive Server®
- "MSSQL", para Microsoft SQL®
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎