Á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 2 Próxima »

Função: MSParseFull

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.

MSParseFull ( < cSQL>, < cBD>, < @cErro>, < @cSaida>, [ lbIsQuery] ) --> iFunciona

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. Para saber quais bancos de dados são aceito por este parâmetro, consulte a área "Observações". X
cErroCaracterIndica a mensagem de erro, retornada pela função MSParseError(). Caso vazio, nenhum erro foi retornado. X X
cSaidaCaracterIndica a string SQL convertida. Caso tenha ocorrido erro, o retorno será apenas até onde foi realizada a conversão para auxiliar na localização do erro no SQL original. X X
lbIsQueryLógicoIndica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures.
    iFunciona(numerico)
  • Retorna 1, se realizar a conversão corretamente; caso contrário, 0, se ocorrer erro na conversão.

Os bancos de dados relacionais aceitos, no segundo parâmetro (cBD) , são:

  • Informix®
  • IBM Universal Database® (DB2)
  • Oracle®
  • SyBase Adaptive Server®
  • Microsoft SQL® ou Microsoft SQL7®

 

 

#INCLUDE 'TOTVS.CH'User Function TestParser()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 "saida := msparsefull(tSQL,"INFORMIX",sErro,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

  • Sem rótulos