Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 5 Próxima »

Função: 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.

MSParse ( < cSQL>, < cBD>, [ lIsQuery] ) --> cSQLConvert

 

NomeTipoDescriçãoObrigatórioReferência
cSQLCaracterIndica a string SQL, escrita em MSSQL, que será convertida.X 
cBDCaracterIndica o nome do banco de dados para o qual será convertida string SQL - Structured Query Language.X 
lIsQueryLógicoIndica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures.  

 

cSQLConvert
    (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.
  • 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®
    • "POSTGRES", para PostgreSQL

 

#INCLUDE 'TOTVS.CH'
User Function TestM1()
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 "

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

 

  • Sem rótulos