Descrição
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
MSParseFull( <cSQL>, <cBD>, <@cErro>, <@cSaida>, <lbIsQuery> ) |
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 |
X | ||
03 | cErro |
Caracter |
Indica a mensagem de erro, retornada pela função MSParseError(). Caso vazio, nenhum erro foi retornado |
X | ||
04 |
cSaida |
Caracter |
Indica 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 | ||
05 | lbIsQuery |
Boolean |
Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures |
Retorno
Retorno | Tipo | Descrição |
nRet | Numérico |
Retorna 1, se realizar a conversão corretamente; caso contrário, 0, se ocorrer erro na conversão |
Exemplo
#INCLUDE "TOTVS.CH" User Function MSParseFull() Local cQuery := "" Local cErro := '' Local cRet := '' 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 " MSParseFull( cQuery,"INFORMIX", @cErro, @cRet ) If !Empty( cErro ) Conout( 'Erro: ' + cErro ) Else Conout( 'Retorno: ' + cRet ) Endif Return( Nil )
Resultado
Informações adicionais
|
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎