Tabela Auxiliar
Olá amigos, estou com uma dúvida e gostaria da ajuda de vcs. Seguinte estou fazendo um cadastro de cliente e nele tenho alguns campos que são chaves estrangeiras, exemplo o campo Cidade. Tenho uma tabela de Cidade com quase 6000 registros, qual a melhor forma de fazer esse cadastro? Qual melhor forma de trabalhar com essa chave estrangeira(Cidade) e com a tabela auxiliar(Cidade). Será usar o componente DBLookUpComboBox? Agradeço a ajuda de vcs.
Anderson Ferreira
Curtidas 0
Respostas
William
11/04/2013
Colega entendo que usar DBLookUpComboBox com essa quantidade de registros seria um "tiro no pé" pensando em termos de performance.
Uma alternativa seria construir um formulário auxiliar só para consulta de cidades, onde após o usuário selecionar a cidade correta no DBGrid vc carregaria esse id no campo do correspondente da tabela de cliente.
Nesse formulário vc poderia carregar os dados no DBGrid utilizando um ClientDataSet e filtrar os dados em memória mesmo, desse modo vc não perderia performance no sistema, pois o ClientDataSet pode trabalhar com dados em memória.
Bom seria uma alternativa, mas existem outras ...
Uma alternativa seria construir um formulário auxiliar só para consulta de cidades, onde após o usuário selecionar a cidade correta no DBGrid vc carregaria esse id no campo do correspondente da tabela de cliente.
Nesse formulário vc poderia carregar os dados no DBGrid utilizando um ClientDataSet e filtrar os dados em memória mesmo, desse modo vc não perderia performance no sistema, pois o ClientDataSet pode trabalhar com dados em memória.
Bom seria uma alternativa, mas existem outras ...
GOSTEI 0
Anderson Ferreira
11/04/2013
então pq fico em dúvida em relação a visualização da informação. Pq como na tabela de cliente ten que ir o código da cidade da tabela de cidade, teria que mostrar o nome da cidade no cadastro de cliente. E no caso de trabalhar com campo lookup direto no dataset?
GOSTEI 0
Anderson Ferreira
11/04/2013
alguém?
GOSTEI 0
William
11/04/2013
Colega nada impede que para visualização dos dados do cliente no DBGrid vc escreva uma instrução SQL com INNER JOIN na tabela de cidades, assim no DBGrid será exibido a descrição da cidade.
GOSTEI 0
William
11/04/2013
Leia esse artigo q postei, como exibir dados de várias tabelas mas manipular dados somente de uma tabela:
[url]https://www.devmedia.com.br/providerflags-no-delphi-atualizando-dados-de-uma-unica-tabela/26689[/url]
[url]https://www.devmedia.com.br/providerflags-no-delphi-atualizando-dados-de-uma-unica-tabela/26689[/url]
GOSTEI 0
Anderson Ferreira
11/04/2013
olá amigo, li o artigo que vc postou e achei bem interessante, muito obrigado. Mais acontece que agora estou com o seguinte erro, fiz conforme seu artigo mas ta dando esse erro
cannot update a complex query with more than one table
Espero que possa me ajudar. Estou usando zeos e mysql.
cannot update a complex query with more than one table
Espero que possa me ajudar. Estou usando zeos e mysql.
GOSTEI 0
William
11/04/2013
Colega esse erro é bem comum quando estamos trabalhando com mais de uma tabela na mesma instrução SQL de INSERT ou UPDATE.
Você tem Skype?
Fica melhor para explicar e entender como estão configurados seus componentes, posteriormente postamos a solução aqui no fórum!
Você tem Skype?
Fica melhor para explicar e entender como estão configurados seus componentes, posteriormente postamos a solução aqui no fórum!
GOSTEI 0
Anderson Ferreira
11/04/2013
olá Amigo, agradeço pela sua ajuda, acabei de conseguir. Na paleta do Zeos tem um componente ZUpdateSQL, utilizei ele junto com o ZQuery. Obrigado pela ajuda.
Como coloco resolvido mesmo?
Como coloco resolvido mesmo?
GOSTEI 0
William
11/04/2013
Que bom que funcionou!
Não sou moderador dessa sala, mas o colega Joel Rodrigues que é o moderador está sempre passando por aqui, basta postar como resolvido e será fechado o tópico.
Não sou moderador dessa sala, mas o colega Joel Rodrigues que é o moderador está sempre passando por aqui, basta postar como resolvido e será fechado o tópico.
GOSTEI 0
Anderson Ferreira
11/04/2013
RESOLVIDO
GOSTEI 0