Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css
Portuguese

Pagetitle
MSParse

...

...

...

MSParse

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

Bloco de código
collapsefalse
MSParse( <
cSQL>
 cSQL >, <
cBD>
 cBD >, [ lIsQuery ] )
--> cSQLConvert

Parâmetros

...

 

Nome

Tipo

Descrição

Obrigatório

Referência

cSQL

...

caractere

Indica a string SQL, escrita em MSSQL, que será convertida.

X

 

cBD

...

caractere

Indica o nome do banco de dados para o qual será convertida string SQL - Structured Query Language.

X

 

lIsQuery

...

lógico

Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures.

 

 

Retorno

Nome

...

Tipo

...

Descrição

...

cResult

...

caractere

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.

Observações

  • Recomendamos 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 <cBD>, 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®
    • "MYSQL", para MySQL Database
    • "POSTGRES", para PostgreSQL

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user Function exemplo()

  TCLink()
  
  cSQL
para PostgreSQL

 

#INCLUDE 'TOTVS.CH'
User Function TestM1()
Local tSQL := ""
Local sErro := ""
Local sSql
 := "
"
tSQL
 
+=
Create 
"create proc sp_Teste (@dtInicial
Procedure PROC_EXAMPLE(@outStr char(
10
64)
, @dtFinal char(18)
 OUTPUT, 
@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 += "
@outValue int OUTPUT) As " + ;
          " Begin " + ;
          "   select @outStr = 'Teste' " + ;
          " 
j.nav_n2
 
navio,
 
"
select 
+ chr(13)
tSQL +=
@outValue = 100 " + ;
       
isnull(g.proc_nome,'NAO
 
DEVOLVIDO')
 
local_dev,
 " 
+ chr(13)
tSQL += " dateadd(hour, 2, b.data_saida) " + chr(13)
tSQL += "
End "
         
from
 
  
tabela1
// 
a,
verifique 
"
o 
+ 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 "
sSql := msparse(tSQL,"INFORMIX")
conout("Traduzido: ")
conout(sSql)
sErro = msparseerror()
conout("Erro encontrado: ")
conout(sErro)
conout("FIM")
return
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
 
banco de dados utilizado para atribuir no segundo parametro da função MSParse
  cResult := MSParse(cSQL, "ORACLE", .F.)
  
  conout(cResult)
  
  TCSPExec(cResult)
  
  if TCSPExist("PROC_EXAMPLE") == .T.
    conout("Procedure criada com sucesso!")
  endif
  
  TCUnlink()
  
Return

Veja também