Árvore de páginas

Analisa e converte uma Stored Procedure escrita em SQL ANSI, para um dos bancos de dados relacionais homologados.

Sintaxe

MSParse( < cSQL >, < cBD >, [ lComp ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cSQL

caractere

Stored Procedure escrita em SQL ANSI, que será convertida.

X


cBD

caractere

Indica o nome do banco de dados para o qual será convertida Stored Procedure.

X


lComp

lógico

Parâmetro de compatibilidade. Deve ser informado o valor nulo ( NIL ).



Retorno

Nome

Tipo

Descrição

cResult

caractere

Retorna a Stored Procedure 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.


    Atenção

    As operações de concatenação devem utilizar o operador "||", e quando usadas junto com outros operadores, a operação de concatenação deve estar isolada entre "()" parênteses. A operação de concatenação pode ser traduzida para uma chamada de função – como é o caso do POSTGRES – e quando usada junto com outros operadores em uma expressão, a ausência dos parênteses para indicar a precedencia / ordem da operação pode levar a resultados incorretos ou inválidos.

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

user function exemplo()

  TCLink()
  
  cSQL := " Create Procedure PROC_EXAMPLE(@outStr char(64) OUTPUT, @outValue int OUTPUT) As " + ;
          " Begin " + ;
          "   select @outStr = 'Teste' " + ;
          "   select @outValue = 100 " + ;
          " End "
          
  // verifique o 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

  • Sem rótulos