[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