IBM Books

Guia de Referência do Net.Data


Interface de Arquivo Plano

A interface de arquivo plano é um ambiente de linguagem que vem pré-configurado para o DB2 na maioria das plataformas. Você pode abrir, ler e manipular dados a partir de fontes de arquivos planos (texto comum), assim como armazenar dados em arquivos planos utilizando as funções na macro Net.Data.

Delimitadores da Interface de Arquivo Plano

Para melhorar o desempenho, você pode manter a saída tabular do Net.Data de um conjunto de pedidos SQL em um arquivo plano. Você pode recuperar o arquivo plano em pedidos subseqüentes, ao invés de emitir novamente os pedidos SQL.

Os arquivos planos do Net.Data podem ser criados a partir das tabelas Net.Data e as tabelas podem ser geradas a partir dos arquivos planos. Para efetuar as transformações entre as tabelas e os arquivos planos, você deve definir o mapeamento entre as colunas em uma tabela e os registros em um arquivo plano. Os delimitadores fornecem um método para definir como porções de registros em um arquivo plano podem ser separadas e mapeadas até as colunas de uma tabela e como colunas em uma tabela podem ser mapeadas até registros em um arquivo plano.

Há dois tipos de delimitadores:

Caractere de linha nova (ASCIITEXT)
Utilize esta transformação quando sua tabela for composta por uma coluna. O Net.Data mapeia cada registro no arquivo plano correspondente até uma única linha da tabela. Neste caso, o caractere de linha nova normal que separa registros em um arquivo plano é o único delimitador utilizado.

Caractere de linha nova e cadeia delimitadora (DELIMITED)
Utilize esta transformação quando sua tabela for composta por diversas colunas. Quando o Net.Data cria um registro de arquivo plano a partir de uma linha em uma tabela, ele coloca uma cadeia delimitadora como sendo um separador entre os itens. Quando o Net.Data gera novamente uma tabela a partir de um arquivo plano, ele utiliza a cadeia delimitadora para determinar o quanto de cada linha deve colocar em uma coluna da tabela. Neste caso, o caractere de linha nova normal separa os registros no arquivo plano que corresponde à linhas na tabela, e a cadeia delimitadora separa os itens dentro de um único registro.

A função DTWF_SEARCH pode ser utilizada para recuperar determinados registros mantidos em um arquivo plano que foi gerado a partir de uma tabela Net.Data. Especifique uma cadeia em DTWF_SEARCH para retornar todos os registros que contém a cadeia no arquivo plano como linhas em uma tabela Net.Data.

Funções da Interface de Arquivo Plano

DTWF_APPEND

Objetivo


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

Grava o conteúdo de uma variável de tabela no final de um arquivo.

Sintaxe

Parâmetros

Tabela 51. Parâmetros DTWF_APPEND
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo IN Nome do arquivo no qual o conteúdo da variável de tabela é acrescentado.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela a partir da qual os registros são lidos.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser anexado imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de linhas da tabela para anexar. O padrão é anexar todas as linhas. Especificar 0 anexa todas as linhas.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_APPEND(meuArquivo, "DELIMITED", " ;", minhaTabela)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_APPEND(meuArquivo, "ASCIITEXT", " ;", minhaTabela)

Exemplo 3:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_APPEND(meuArquivo, "ASCIITEXT", " ;", minhaTabela, "0", "10")

DTWF_CLOSE

Objetivo


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

Fecha um arquivo aberto por DTWF_OPEN.

Sintaxe

Parâmetros

Tabela 52. Parâmetros DTWF_CLOSE
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo IN O nome do arquivo a ser fechado. O nome do caminho completo do arquivo é retornado quando este é fechado.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser fechado imediatamente. O padrão é não tentar novamente.

Exemplos

Exemplo 1:

@DTWF_CLOSE(meuArquivo, 5)

DTWF_DELETE

Objetivo


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

Elimina registros de um arquivo. (Não elimina arquivos vazios.)

Sintaxe

Parâmetros

Tabela 53. Parâmetros DTW_DELETE
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo IN Nome do arquivo cujos registros serão eliminados.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser eliminado imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de linhas a serem eliminadas. O padrão é eliminar todas as linhas. Especificar 0 eliminará todas as linhas.
inteiro linhainicial IN O número de linha a partir do qual deve se iniciar a eliminação. Um valor de 1 significa iniciar a eliminação na primeira linha. Se este valor for maior que o número de linhas no arquivo, o valor é mudado para o último registro e retornado como um erro. O padrão é iniciar no 1.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   minhaEspera = "5000"
   minhasLinhas = "2"
%}
@DTWF_DELETE(meuArquivo, "Delimited", "|", minhaEspera, minhasLinhas)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   meuInício = "1"
   minhasLinhas = "2"
%}
@DTWF_DELETE(meuArquivo, "Asciitext", "|", "0", minhasLinhas, meuInício)

DTWF_INSERT

Objetivo


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

Insere registros em um arquivo.

Sintaxe

Parâmetros

Tabela 54. Parâmetros DTWF_INSERT
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo INOUT Nome do arquivo no qual registros são inseridos. O nome do caminho completo do arquivo é retornado.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela a partir da qual os registros são inseridos na tabela.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser gravado imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de linhas a serem inseridas a partir da tabela. O padrão é inserir todas as linhas. Um valor de 0 insere todas as linhas.
inteiro linhainicial IN O número de linha a partir do qual deve se iniciar a inserção. Especificar 1 significa começar a inserir a partir da primeira linha. Se este valor for maior que o número de linhas no arquivo, o valor é mudado para o último registro e retornado como um erro. O padrão é iniciar no 1.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   minhaEspera = "3000"
%}
@DTWF_INSERT(meuArquivo, "Delimited", "|", minhaTabela, minhaEspera)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   meuInício = "1"
   minhasLinhas = "2"
%}
@DTWF_INSERT(meuArquivo, "Asciitext", "|", minhaTabela, "0", minhasLinhas, meuInício)

DTWF_OPEN

Objetivo


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

Abre um arquivo. O arquivo é mantido aberto até que seja fechado com DTWF_CLOSE para deixar que funções como DTWF_READ e DTWF_WRITE abram o arquivo automaticamente sem que seja necessário chamar DTWF_OPEN.

Sintaxe

Parâmetros

Tabela 55. Parâmetros DTWF_OPEN
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo INOUT O nome do arquivo a ser aberto. O caminho e o nome do arquivo são retornados.
cadeia modo IN O tipo de acesso solicitado:

  • r - abrir um arquivo existente para leitura.

  • w-criar um arquivo para gravação. (Destrói arquivo existente com o mesmo nome, caso exista.)

  • a - abrir um arquivo para anexação. O Net.Data cria o arquivo caso este não seja encontrado.

  • r+ - abrir um arquivo existente para leitura e gravação.

  • w+ - criar um arquivo para leitura e gravação. (Destrói arquivo existente com o mesmo nome, caso exista.)

  • a+ - abrir um arquivo no modo de anexação para leitura e anexação. O Net.Data cria o arquivo caso este não seja encontrado.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser aberto imediatamente. O padrão é não tentar novamente.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  meuModo = "r+"
%}
@DTWF_OPEN(meuArquivo, meuModo, "1000")

DTWF_READ

Objetivo


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

Lê registros de um arquivo em uma variável de tabela.

Sintaxe

Parâmetros

Tabela 56. Parâmetros DTWF_READ
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo INOUT O nome do arquivo cujos registros são lidos em uma variável de tabela.O caminho e o nome do arquivo são retornados.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela na qual os registros de arquivo são lidos.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser lido imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de registros de arquivo para ler em uma tabela. O padrão é ler todos os registros ou até que a tabela esteja completa. O 0 significa que se deve ler até o final do arquivo. O número de linhas na tabela resultante é retornado.
inteiro linhainicial IN O registro no arquivo a partir do qual se deve iniciar a leitura. O padrão é iniciar a leitura no primeiro registro.
inteiro colunas OUT Retorna o número de colunas na tabela.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
  minhaEspera = "1000"
%}
@DTWF_READ(meuArquivo, "DELIMITED", ";", minhaTabela, minhaEspera)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
  minhaEspera = "0"
  minhasLinhas = "0"
  minhaLinhainicial = "1"
  minhasColunas = ""
%}
@DTWF_READ(meuArquivo, "DELIMITED", ";", minhaTabela, minhaEspera, minhasLinhas,
             minhaLinhainicial, minhasColunas)

Exemplo 3:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_READ(meuArquivo, "ASCIITEXT", ";", minhaTabela, minhasColunas)
@DTW_TB_TABLE(minhaTabela,"BORDER","")

DTWF_REMOVE

Objetivo


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

Elimina um arquivo inteiro.

Sintaxe

Parâmetros

Tabela 57. Parâmetros DTW_REMOVE
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo INOUT O nome do arquivo a ser eliminado. O caminho e o nome do arquivo são retornados.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser eliminado imediatamente. O padrão é não tentar novamente.

Exemplos

Exemplo 1:

%DEFINE meuArquivo = "c:/private/myfile"
@DTWF_REMOVE(meuArquivo)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaEspera = "2000"
%}
@DTWF_REMOVE(meuArquivo, minhaEspera)

DTWF_SEARCH

Objetivo


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

Retorna o resultado de uma pesquisa de cadeia para uma variável de tabela.

Sintaxe

Parâmetros

Tabela 58. Parâmetros DTWF_SEARCH
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo INOUT O nome do arquivo a ser pesquisado. O caminho e o nome de arquivo encontrados são retornados.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela na qual os resultados da pesquisa são colocados. 3 colunas são retornadas se transformar for DELIMITED:

  1. A linha na qual o correspondente foi encontrado.

  2. A coluna na qual o correspondente foi encontrado.

  3. A coluna correspondente do arquivo.
cadeia procurarPor IN A cadeia de caracteres a ser procurada.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser pesquisado imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de linhas a serem lidas na tabela. O padrão é ler todas as linhas ou até que a tabela esteja completa. A especificação do 0 fará com que seja lido até o fim do arquivo. O número de linhas na tabela resultante é retornado através deste parâmetro.
inteiro linhainicial IN O registro no arquivo a partir do qual se deve iniciar a pesquisa. O padrão é 1, que inicia a pesquisa a partir do primeiro registro.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
  minhaEspera = "1000"
  minhaBusca = "0123456789abcdef"
@DTWF_SEARCH(meuArquivo, "DELIMITED", ";",
               minhaTabela, minhaBusca, minhaEspera)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
  minhaBusca = "answer:"
  minhaEspera = "0"
  minhasLinhas = "0"
  minhaLinhainicial = "1"
%}
@DTWF_SEARCH(meuArquivo, "DELIMITED", ";", minhaTabela,
               minhaBusca, minhaEspera, minhasLinhas, minhaLinhainicial)

DTWF_UPDATE

Objetivo


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

Atualiza registros de um arquivo a partir de uma variável de tabela.

Sintaxe

Parâmetros

Tabela 59. Parâmetros DTWF_UPDATE
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo IN O nome do arquivo cujos registros são atualizados a partir de uma variável de tabela.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela a partir da qual os registros do arquivo são atualizados.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser gravado imediatamente. O padrão é não tentar novamente.
inteiro linhas IN O número máximo de registros a serem atualizados a partir da tabela. O padrão é atualizar todos os registros. 0 significa atualizar todas as linhas no arquivo.
inteiro linhainicial IN O primeiro registro de arquivo a ser atualizado. O padrão é 1, o qual significa iniciar a atualização no início do arquivo. Se o valor for maior que o número de registros no arquivo, o valor é mudado para indicar o número do último registro no arquivo e um erro é retornado.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   minhaEspera = "1500"
   minhasLinhas = "2"
%}
@DTWF_UPDATE(meuArquivo, "Delimited", "|", minhaTabela, minhaEspera, minhasLinhas)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
   meuInício = "1"
   minhasLinhas = "2"
%}
@DTWF_UPDATE(meuArquivo, "Asciitext", "|", minhaTabela, "0",
minhasLinhas, meuInício)

DTWF_WRITE

Objetivo


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

Grava o conteúdo de uma variável de tabela em um arquivo.

Sintaxe

Parâmetros

Tabela 60. Parâmetros DTWF_WRITE
Tipo de Dados Parâmetro Uso Descrição
cadeia nomearquivo IN O nome do arquivo no qual os registros da variável de tabela são gravados. O caminho e o nome do arquivo são retornados.
cadeia transformar IN O formato do arquivo:

  • ASCIITEXT - gravar a tabela no arquivo com um caractere de linha nova entre valores de coluna e ignorar o parâmetro delimitador.

  • DELIMITED - gravar a tabela no arquivo com o delimitador especificado no parâmetro delimitador.
cadeia delimitador IN Um cadeia de caractere para indicar os finais de valores. Este parâmetro é sensível à maiúsculas/minúsculas. Ignorado se transformar for ASCIITEXT.
cadeia tabela IN A variável de tabela utilizada para exportar linhas para o arquivo.
inteiro retentar IN O número de vezes que se deve retentar caso o arquivo não possa ser gravado imediatamente. O padrão é para não tentar novamente.
inteiro linhas IN O número máximo de registros de arquivo a ser gravado. O padrão é gravar a tabela inteira. O 0 significa que se deve gravar todos os registros até o final do arquivo.
inteiro linhainicial IN O número do registro no qual se deve iniciar a gravação no arquivo. O padrão é 1, o qual significa iniciar no primeiro registro. Se um valor além do final do arquivo for especificado, a última linha do arquivo será retornada com um erro.

Exemplos

Exemplo 1:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_WRITE(meuArquivo, "DELIMITED", ";", minhaTabela)

Exemplo 2:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_WRITE(meuArquivo, "ASCIITEXT", ";", minhaTabela, "5000")

Exemplo 3:

%DEFINE {
  meuArquivo = "c:/private/myfile"
  minhaTabela = %TABLE
%}
@DTWF_WRITE(meuArquivo, "ASCIITEXT", ";", minhaTabela, "5000", "10",
"50")


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