[firebase-br] Tabelas Esternas

eduardo eduardo em icontroller.com.br
Qui Abr 7 17:06:31 -03 2005


Oi Thiago

Tabelas externas servem principalmente para o
propósito de ler/escrever arquivos formatados
por tamanho (posições) dos campos, como arquivos
de retorno de banco ou catracas. Na prática o único tipo de
campo possível nestas tabelas é o CHAR(N)

exemplo

CREATE TABLE CATRACA EXTERNAL FILE 'C:\Catraca\Movimento.Txt'
(
MATRICULA CHAR(15),
DATA CHAR(6),
HORA CHAR(4),
TIPO CHAR(1),
FUNCAO CHAR(2),
CATRACA CHAR(3),
FIXO CHAR(2),
LINHA CHAR(2)
)
O "|" representa os limites de cada campo
o Campo LINHA CHAR(2) é para acomodar a seqüência #13#10 de final de linha

              15     6   41 2  3 2CR -> #13#10 (retorno de carro)
--------------|-----|---||-|--|-|-|
000000000003668040305162910100200
000000000003846040305070000000000
000000000003764040305070000000000
000000000003782040305070000000000
000000000003794040305070000000000
000000000003795040305070000000000

Existindo o arquivo C:\Catraca\Movimento.Txt com este
conteúdo, você pode dar um
SELECT * FROM CATRACA
ou mesmo
INSERT INTO MINHA_TABELA
(MATRICULA,DATA,HORA,TIPO,FUNCAO,CATRACA,FIXO)

SELECT MATRICULA,DATA,HORA,TIPO,FUNCAO,CATRACA,FIXO
FROM CATRACA

Você também pode fazer JOINS com outras tabelas
com este arquivo externo

SELECT A.MATRICULA,B.NOME
FROM CATRACA A LEFT JOIN PESSOAS B ON A.MATRICULA=B.MATRICULA

Para gravar em um arquivo externo, e isto
se faz normalmente a partir de outro arquivo,
faz-se um SELECT com CAST AS CHAR(N), tipo

INSERT INTO CATRACA
(MATRICULA,DATA,HORA,TIPO,FUNCAO,CATRACA,FIXO,LINHA)
SELECT CAST(CAMPO_1 AS CHAR(15)),
        CAST(CAMPO_2 AS CHAR(6))
        ...
        '       **** Aqui um macete que funciona - um ENTER entre dois '
' AS LINHA     **** funciona para preencher o #13#10 (em windows)

Na minha prática, eu recrio a tabela e faço este tipo
de INSERT. Não sei se ele aceitaria um DELETE FROM CATRACA.

A documentação do INTERBASE, disponível no IbPhoenix.com
descreve muito bem tudo isso.

[]s Eduardo


Francisco Thiago wrote:
> Por favor, definam tabelas Externas....
> 
> 
> Thiago
> 
> 
> ----- Original Message ----- From: "Flavio Yamil" 
> <yamil3 em brturbo.com.br>
> To: "'FireBase'" <lista em firebase.com.br>
> Sent: Thursday, April 07, 2005 2:43 PM
> Subject: RES: [firebase-br] Tabelas Esternas
> 
> 
> Não é possível modificar dados em tabelas externas.
> 
> Aliás, pra ser bem sincero, uma vez eu fiz esses testes, e se não me 
> falha a
> memória, acho que dá pra modificar e excluir, mas não dá pra inserir... ou
> algo assim...
> 
> Flavio Yamil
> 
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br 
> [mailto:lista-bounces em firebase.com.br] Em
> nome de Joabel Isaias Hohn
> Enviada em: quarta-feira, 6 de abril de 2005 11:53
> Para: FireBase
> Assunto: [firebase-br] Tabelas Esternas
> 
> 
> É possível utilizar update  e delete em Tabelas externas ?
> ------------------------------------------------------------------
> Esta mensagem foi analizada por superip.com.br
> Última atualização do Anti-virus 05/04/2005 versão dat-4462
> SuperIP - O provedor para quem quer ser Super
> http://www.www.superip.com.br
> Fone 49 323 - 6050   ***   Chapecó - SC
> ------------------------------------------------------------------
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas:
> http://search.gmane.org/search.php?group=rebase
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: 
> http://search.gmane.org/search.php?group=rebase
> 
> 
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: 
> http://search.gmane.org/search.php?group=firebase
> 





Mais detalhes sobre a lista de discussão lista