Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Informar detalhes sobre as operações de concatenação e uso de parênteses

...

Pagetitle
MSParse
MSParse

Analisa e converte uma string SQL - Structured Query Language, escrita em MSSQL - Microsoft Structured Query LanguageStored Procedure escrita em SQL ANSI, para um dos bancos de dados relacionais homologados.

...

Bloco de código
collapsefalse
MSParse( < cSQL >, < cBD >, [ lIsQuerylComp ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cSQL

caractere

Indica a string SQL, Stored Procedure escrita em MSSQLSQL ANSI, que será convertida.

X 


cBD

caractere

Indica o nome do banco de dados para o qual será convertida string SQL - Structured Query LanguageStored Procedure.

X

 


lIsQuerylComp

lógico

Indica se, verdadeiro (.T.), é uma query simples (Exemplo: Select); caso contrário, falso (.F.), procedures.

 

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



Retorno

Nome

Tipo

Descrição

cResult

caractere

Retorna a string SQL 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.

Informações
icontrue
titleObservações
  • Recomendamos a utilização da função MSParseFull(), pois contempla todas as características dessa função com mais funcionalidades.


    Nota
    icontrue
    titleAtençã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

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user Functionfunction 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

...