Analisa e converte uma Stored Procedure escrita em SQL ANSI, para um dos bancos de dados relacionais homologados.
Sintaxe
MSParseFull( < cSQL >, < cBD >, < cError >, < cOut > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cSQL | caractere | Stored Procedure escrita em SQL ANSI, que será convertida. | X |
|
cBD | caractere | Nome do SGBD para o qual será convertida a Stored Procedure. | X |
|
cError | caractere | Recupera a mensagem de erro, retornada pela função MSParseError(). | X |
|
cOut | caractere | Recupera a Stored Procedure convertida. | X |
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
iRet | numérico | Retorna 1 (um), se a conversão ocorreu com sucesso; caso contrário, 0 (zero), indicando erro na conversão. |
Observações
Os bancos de dados relacionais aceitos no segundo parâmetro (cBD) são:
- INFORMIX
- DB2
- ORACLE
- MSSQL
- MYSQL
- POSTGRES ou POSTGRESQL
Exemplos
user function test() local cSQL := ""; local cErro := ""; local cOut := ""; local cRet := "0" cSQL += "create proc sp_Teste (@dtInicial char(10), @dtFinal char(18), @ben_id char(6)) " + chr(13) cSQL += "as " + chr(13) cSQL += "declare " + chr(13) cSQL += " @id integer = 1, " + chr(13) cSQL += " @din money, " + chr(13) cSQL += " @hoje date " + chr(13) cSQL += "begin " + chr(13) cSQL += " select distinct " + chr(13) cSQL += " j.nav_n2 navio, " + chr(13) cSQL += " isnull(g.proc_nome,'NAO DEVOLVIDO') local_dev, " + chr(13) cSQL += " dateadd(hour, 2, b.data_saida) " + chr(13) cSQL += " from tabela1 a, " + chr(13) cSQL += " tabela2 b " + chr(13) cSQL += " where a.dt_entrada between convert(datetime,@dtInicial,103) and convert(datetime,@dtFinal,103) " + chr(13) cSQL += " and a.cliente = b.cliente " + chr(13) cSQL += "end " + chr(13) cSQL += "go " cRet := msparsefull(cSQL, "INFORMIX", cErro, cOut) conout("Resultado: " + IIF(cRet == "1", "Sucesso", "Falha") + chr(10) + "Erro encontrado(?): " + cErro) if (cRet == '1') msgInfo("Resultado: Sucesso!" + chr(10) + "String SQL Convertida:" + cOut) else msgInfo("Resultado: Falha!" + chr(10) + "Error: " + cErro + chr(10) + "Parcial: " + cOut) end if return