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

Opções de Controle

Configurando o Ambiente

É possível selecionar as opções para o comando OPUS $ via as variáveis de ambiente do UNIX. Estas variáveis são:

OPUSOPT

Quando selecionada indica ao compilador quais opções este deve seguir durante a compilação de um fonte OPUS, o que eqüivale à usar estas opções dentro do próprio fonte com o comando "$".

DIRLIB

Quando selecionada indica o diretório onde as bibliotecas de sistema da OPUS estão localizadas (libfacbib.a e libbd.a).

DIRINC

Quando selecionada indica o diretório onde os arquivos de inclusão de sistema da OPUS estão localizados (types.h, tsobjetos.h, etc.)

Exemplos

Informar ao compilador OPUS que os programas compilados irão usar a versão 5.3 e as bibliotecas do usuário. Para fazer isto, selecione as variáveis seguintes:

$ PATH = /V5.3:$PATH

$ DIRLIB = /V5.3/lib

$ DIRINC = /V5.3/include

$ OPUSOPT = "library = mesmalib.a, dirlib, dirinc"

$ export PATH DIRLIB DIRINC OPUSOPT

$CONVNEED

Propósito

Evitar conversões de dados desnecessárias.

Sintaxe

$ CONVNEED

Utilização

Nos comandos de leitura (FIND, SEEK e LOCATE), o conteúdo de todo o registro lido é convertido para item de memória, além destes são convertidos os itens de outros arquivos lidos por JOIN automático.

Esta opção inibe a conversão total e automática, sendo assim, os itens de banco de dados só serão convertidos no momento de sua utilização, agilizando em alguns casos o processamento do programa.

A utilização desta opção deve ser criteriosa pois não permite JOINS automáticos, pois isso inviabilizaria a otimização.

$ORACLE

Propósito

Permitir o acesso a uma base de dados ORACLE.

Sintaxe

$ORACLE

Utilização

Permite que um programa OPUS acesse bases de dados ORACLE e OpenBASE simultaneamente.

Este comando instrui ao compilador para gerar um código 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 base 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.

Exemplos

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

*

* Teste Opus acessando base de dados ORACLE

* Uso concomitante do ORACLE com OpenBASE.

*

$ORACLE, savec

$pcc_options = "include=/usr/ORACLE/c/lib errors=yes host=c reclen=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)

$ODBC

Propósito

Permite que um programa OPUS acesse um banco de dados SQL através do driver ODBC.

O banco de dados SQL é derivado a partir do banco de dados OpenBASE, através do utilitário BDSQL OPENBASE. Os dados podem ser descarregados do banco OpenBASE no formato <INSERT INTO <arq> values (<val1>,...<valn>> através da opção –q no bddesc e incluídos no banco SQL.

Sintaxe

$odbc

set odbc on

Utilização

Permite que alguns comandos e funções da OPUS gerem código para ODBC, podendo acessar bancos de dados SQL.

Comandos:

database, find, locate [start], seek, insert, delete, modify, empty, save, restore, set order to, sort on, unlock e undo.

Funções

chain(), reccount(), indreccoundt(). A função automática também gera código para ODBC.

O comando database tem a seguinte sintaxe:

database <banco><seg><nivel><modo abertura>

onde:

<banco> é o nome do DSN utilizado no ODBC.

<seg> é ignorado no ODBC.

<nivel> deve ser: "UID = <usuário>; PWD = <senha>;"

<modo> é o modo de abertura do banco.

Deve existir na máquina o diretório \USR\TSGBD\ODBC\, para que ao ser acessado durante a compilação de um programa Opus, o banco SQL, cria um dicionário OpenBASE neste diretório. Se este dicionário existir o banco SQL não é acessado. Se o banco SQL for alterado, o dicionário OpenBASE deve ser removido do diretório \usr\tsgbd\odbc, para que possa ser recriado.

Com esta opção, um programa Opus pode acessar um banco de dados SQL, sem que o código fonte do programa seja alterado.

Basta apenas existir o driver ODBC instalado e configurado na máquina.

$PCC_OPTIONS

Propósito

Passar parâmetros para o compilador ProC.

Sintaxe

$ PCC_OPTIONS = <expC>

Argumentos

<expC>

Representam as opções para o pré-compilador ProC.

Utilização

Utiliza-se esta opção em conjunto da opção $ORACLE, para passar parâmetros ao pré-compilador ProC da ORACLE.

Exemplos

O exemplo a seguir mostra a utilização deste comando.

*

* Teste Opus acessando base de dados ORACLE

* 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;

...

...

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