[firebase-br] Insert em várias tabelas com Join (Meio Off)

Carlos Gilson krlosgilson em gmail.com
Sáb Jul 11 15:04:24 -03 2009


Bom dia! Gente ouvi dizer que o nosso banco de dados fica com um desempenho
bem melhor quando dividimos uma tabela que possui vários campos em várias
tabelas. Por exemplo: ao invés de ter somente uma tabela CLIENTES com mais
ou menos 80 campos, eu dividi nas seguintes tabelas: CLIENTES,
CLIENTES_ENDERECOS, CLIENTES_CONTATOS, CLIENTES_ESTATISTICAS,
CLIENTES_REFERENCIAS. Agora vem a parte meio Off-Topic: Na minha aplicação
em Delphi utilizo o conjunto dos componentes de acesso a dados: sqldataset,
datasetprovider, clientdataset e datasource. O Problema é que quando dou um
Insert e preencho qualquer campo da tabela a não ser a tabela CLIENTES, dá
um erro de: Column unknow (coluna desconhecida). Ou seja o clientdataset não
identifica os campos das outras tabelas, porque no From do meu select aponto
para CLIENTES e as outras tabelas unifico com o INNER JOIN. Segue abaixo um
trecho do meu select:

select
C.ID,
C.NOME,
C.DTNASCIMENTO,
CC.TELEFONE1,
CC.TELEFONE2,
CC.EMAIL,
CC.SITE,
CE.RUA,
CE.NUMERO,
CE.COMPLEMENTO,
CE.BAIRRO,
CE.CIDADE,
CE.UF
from CLIENTES C
INNER JOIN CLIENTES_CONTATOS CC ON (C.ID = CC.ID_CLIENTE)
INNER JOIN CLIENTES_ENDERECOS CE ON (C.ID = CE.ID_CLIENTE)

Então já setei todas as propriedas do Providerflags dos outros campos para
false, enfim. Tudo que já pesquisei já fiz e continua dando o mesmo. Mas o
que eu sei é que dá certo sim e otimiza bastante o select. Pois uma tabela
com quase 100 campo não é nada bom utilizar. Deste modo para consultar
funciona perfeitamente, nao to conseguindo é inserir registros. Alguém tem
uma idéia melhor para eu utilizar no meu select ou uma outra sugestão?
Obrigado!



Mais detalhes sobre a lista de discussão lista