IBM Books

Guia de Referência do Net.Data


Variáveis de Banco de Dados

Use estas variáveis com suas funções SQL para auxiliar a personalizar a maneira com que os blocos FUNCTION são processados. Você deve definir essas variáveis antes de referenciá-las. Você pode definir ou referenciar variáveis de relatório em qualquer bloco macro do Net.Data.

DATABASE

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X
X X X X

O Net.Data usa essa variável para estabelecer uma conexão com o banco de dados especificado. Em todas as plataformas, exceto OS/400, apenas uma conexão de banco de dados é permitida para cada macro, a menos que você use Conexão Ao Vivo para definir uma conexão persistente. Caso essa variável não seja definida, um erro ocorre quando se tenta acessar um banco de dados.

Na plataforma OS/400, você pode estabelecer múltiplas conexões de banco de dados. Além disso, a variável DATABASE é opcional. Net.Data para OS/400, por padrão, especifica DATABASE="*LOCAL"; o ambiente de linguagem que DTW_SQL usa a entrada do diretório do banco de dados relacional.

Você pode alterar DATABASE para diferentes blocos HTML na mesma macro de Net.Data, como mostrado nos exemplos 2 e 3.

Exemplos

Exemplo 1: Qualquer SQL nesse macro de Net.Data é executado no banco de dados CELDIAL.

%DEFINE DATABASE="CELDIAL"

Exemplo 2: O bloco HTML consulta o banco de dados DB2D1, independentemente de qual era o valor anterior para DATABASE.

%HTML(monthRpt){
@DTW_ASSIGN(DATABASE, "DB2D1")
%INCLUDE "rpthead.htm"
@getRpt()
%INCLUDE "rptfoot.htm"
%}

Exemplo 3: Este exemplo é o mesmo que o exemplo 2, porém usa DEFINE para definir a variável DATABASE ao invés de DTW_ASSIGN. Isso funciona por que Net.Data processa todo a macro de Net.Data macro a partir da parte superior toda vez que um bloco HTML é chamado.

%DEFINE DATABASE="DB2D1"
%HTML(monthRpt){
%INCLUDE "rpthead.htm"
@getRpt()
%INCLUDE "rptfoot.htm"
%}

DB_CASE

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

Especifique qual o caso usar para comandos SQL. Caso essa variável não esteja definida, a ação padrão é não converter o comando SQL. Especifique "UPPER" ou "LOWER" para forçar todos os caracteres no comando SQL para maiúsculo ou minúsculo.

Exemplos

Exemplo 1:

%DEFINE DB_CASE="UPPER"

DB2PLAN

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT



X



Net.Data para OS/390 usa essa variável para alocar um plano para uma conexão, para um subsistema DB2 local. A variável especifica o nome do plano de um plano para o ambiente de linguagem SQL do Net.Data no subsistema DB2 local, que o Net.Data acessará. Um erro ocorre se a macro tentar executar uma função SQL quando esta variável não estiver especificada dentro do arquivo de configuração Net.Data para OS/390, e também não estiver definida dentro de uma macro.

Exemplos

Exemplo 1:

%DEFINE DB2PLAN="DTWGA105"

DB2SSID

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT



X



Net.Data para OS/390 usa essa variável para estabelecer uma conexão a um subsistema DB2 local. A variável especifica o subsistema DB2 local que Net.Data acessará. Apenas uma conexão de banco de dados local é permitida para cada macro. Um erro ocorre se a macro tentar executar uma função SQL quando esta variável não estiver especificada dentro do arquivo de configuração Net.Data para OS/390, e também não estiver definida dentro de uma macro.

Exemplos

Exemplo 1:

%DEFINE DB2SSID="DB2G"

DTW_SAVE_TABLE_IN

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

Esta variável identifica uma variável TABLE que o ambiente de linguagem SQL usa para armazenar dados de tabela de uma consulta. Essa tabela pode então ser usada mais adiante, por exemplo, em um programa REXX que analisa dados de tabela.

Exemplos

Nesse exemplo, o bloco REXX FUNCTION chama o programa REXX anzTbl.cmd, o qual usa a variável thetable para analisar dados na tabela. A variável theTable foi retornada de uma chamada de função SQL anterior.

%DEFINE theTable = %TABLE(2)
%DEFINE DTW_SAVE_TABLE_IN = "theTable"
 
%FUNCTION(DTW_SQL) doQuery() {
SELECT MODNO, COST, DESCRIP FROM EQPTABLE
WHERE TYPE='MONITOR'
%}
 
%FUNCTION(DTW_REXX) analyze_table(myTable) {
  %EXEC{ anzTbl.cmd %}
%}
 
%HTML(doTable) {
@doQuery()
@analyze_table(theTable)
%}

LOCATION

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT



X



Net.Data para OS/390 usa essa variável para estabelecer uma conexão a um servidor de banco de dados remoto. A variável especifica o nome pelo qual o servidor remoto é conhecido para o subsistema DB2 local. O valor de LOCATION deve ser definido na tabela SYSIBM.SYSLOCATIONS do Banco de Dados de Comunicações (CDB). Se essa variável não estiver definida dentro de uma macro, então qualquer solicitação SQL feita pela macro é executada no subsistema DB2 local.

Exemplos

Exemplo 1:

%DEFINE LOCATION="QMFDJ00"

LOGIN

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X
X X X X

Concede acesso a dados protegidos fornecendo uma ID de usuário. Use essa variável com PASSWORD para incorporar os algoritmos de segurança do DB2. O padrão é para usar a ID de usuário que iniciou o servidor da Web. Você pode fazer um código permanente desse valor no macro de Net.Data, ou fazer com que o usuário da aplicação forneça-o em um formulário HTML.

Exemplos

Exemplo 1: Este exemplo restringe o acesso apenas à ID de usuário DB2USER.

%DEFINE LOGIN="DB2USER"

Exemplo 2: Este exemplo mostra uma linha que pode você pode incluir como parte de um formulário HTML para usuários da aplicação para entrada de suas IDs.

USERID&#58;  <INPUT TYPE="text" NAME="LOGIN" SIZE=6>

PASSWORD

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X
X X X X

Concede acesso a dados protegidos fornecendo uma senha. Use essa variável com LOGIN para incorporar os algoritmos de segurança de DB2. Você pode fazer um código permanente desse valor no macro de Net.Data, ou fazer com que as pessoas forneçam-o em um formulário HTML.

Exemplos

Exemplo 1: Este exemplo restringe o acesso de pessoas com a senha NETDATA apenas.

%DEFINE PASSWORD="NETDATA"

Exemplo 2: Este exemplo mostra uma linha que pode você pode incluir como parte de um formulário HTML para usuários da aplicação para entrada de suas senhas.

PASSWORD&#58; <INPUT TYPE="password" NAME="PASSWORD" SIZE=8>

SHOWSQL

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

Oculte ou exiba o SQL da consulta usado no Navegador da Web. O padrão é para ocultar o SQL. Defina essa variável para YES para exibir o SQL enviado ao banco de dados. Defina-a para NO para ocultar o SQL. Exibindo a SQL durante o teste é especialmente útil para depurar suas macros de Net.Data.

Exemplos

Exemplo 1: Este exemplo mostra como exibir a SQL sempre.

%DEFINE SHOWSQL="YES"

Exemplo 2: Este exemplo mostra como especificar para exibir, ou não, SQL, usando entrada de formulário HTML.

SHOWSQL: <INPUT TYPE="radio" NAME="SHOWSQL" VALUE="YES"> Yes
         <INPUT TYPE="radio" NAME="SHOWSQL" VALUE="" CHECKED> No

TRANSACTION_SCOPE

Objetivo


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

Especifica o escopo da transação para comandos SQL. O padrão é "MULTIPLE", o que significa que Net.Data emite um COMMIT apenas após todos os comandos SQL, em um bloco HTML, se completarem com sucesso. Um comando SQL mau sucedido faz com que todas SQL anteriormente executadas ao mesmo banco de dados, naquele bloco, sejam retomados. Especificando "SINGLE" significa que Net.Data emite um COMMIT depois que cada comando SQL, em um bloco HTML, complete-se com sucesso.

Em plataformas diferentes de OS/400 e OS/390, atualizações ao banco de dados recebendo respostas sem sucesso poderiam ser retomadas, enquanto as atualizações para outros bancos de dados acessados no mesmo bloco HTML, poderiam sofre commit quando todas as seguintes condições forem verdadeiras:

Se você acessar múltiplos bancos de dados a partir do Net.Data, usando o software DataJoiner, você pode alcançar consistência e coordenação de atualização de múltiplos bancos de dados, quando atualizar a partir do Net.Data.

Em OS/400 e OS/390, TRANSACTION_SCOPE = "MULTIPLE" faz com que todas as atualizações de bancos de dados IBM emitidas de um bloco HTML único, sofram commit ou retomem em conjunto.

Em plataformas diferentes de OS/400, os ambientes de linguagem REXX, Perl, e Java executam-se em seus processos do sistema operacional separados. Assim, qualquer atualização de banco de dados que você emitir a partir desses ambientes de linguagem, sofrem commit ou são retomados separadamente das atualizações do banco de dados, emitidas a partir de um arquivo de Net.Data, independente do valor de TRANSACTION_SCOPE de Net.Data.

Exemplos

Exemplo 1:

%DEFINE TRANSACTION_SCOPE="SINGLE"


[ Início da Página | Página Anterior | Próxima Página | Tabela de Conteúdos | Índice ]