Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

$ORACLE

Propósito

Permitir o acesso a uma base de dados ORACLE.

Sintaxe

$ORACLE

Utilização

Para que um programa OPUS acesse uma base ORACLE, podendo acessar uma base OpenBASE concomitantemente.

Este comando instrui ao compilador que gere um fonte para o pré-compilador C do ORACLE, o ProC, com extensão ".pc" ao invés de um fonte C com extensão ".c". O fluxo de compilação invoca o compilador ProC.

Os comandos de acesso a Bancos de Dados OpenBASE continuam ativos e a base ORACLE é acessada através do comando com sintaxe SQL do ProC.

Opções para o pré-compilador ProC podem ser passadas pela opção $PCC_OPTIONS.

Exemplo

O exemplo a seguir mostra um programa com é esta característica:

* Teste Opus acessando base de dados ORACLE

* Sample Program: Uso concomitante do ORACLE com OpenBASE.

$ORACLE, savec

$pcc_options = "include=/usr/ORACLE/c/lib errors=yes host=c ireclen=132"

  prog

  database TORACLE 1 a 2

  use emp

  EXEC SQL INCLUDE sqlca;

  empno, mgr, sal, comm, deptno = 0

  hiredate, ename, job = space(10)

  usernome = "SCOTT"

  password = "TIGER"

  EXEC SQL WHENEVER SQLERROR GOTO 

sqlerror;

  EXEC SQL CONNECT :usernome IDENTIFIED 

BY : password;

  0,0 say "Conectado ORACLE ao usuario: "+usernome

  EXEC SQL DECLARE salespeople CURSOR FOR

  SELECT EMPNO, ENAME, JOB, MGR, 

HIREDATE, SAL, COMM, DEPTNO

  FROM EMP;

  EXEC SQL OPEN salespeople;

  EXEC SQL WHENEVER NOT FOUND GOTO end_of_fetch;

  ?

  nlin = 0

  do while .t.

  EXEC SQL FETCH salespeople INTO :empno, :ename, :job, :mgr, :hiredate, :sal, :comm, :deptno;

     incr nlin

     replace empno, ename, job, mgr, hiredate, sal, 

comm,              deptno

     insert

  enddo

  LABEL SQL end_of_fetch

  EXEC SQL CLOSE salespeople;

  ? "Transferidas ", nlin, " linha", iif(nlin = 1, ".", "s.")

  EXEC SQL COMMIT WORK RELEASE;

  ?

  ? "Tenha um ", "BOM DIA" bold

  quit (0)

  LABEL SQL sqlerror

  clear

  ? get_string (sqlca.sqlerrm.sqlerrmc, 

get_short(sqlca.sqlerrm.sqlerrml))

  EXEC SQL WHENEVER SQLERROR 

CONTINUE;

  EXEC SQL ROLLBACK WORK RELEASE;

  quit (1)

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!