Ir para conteúdo
Fórum Script Brasil
  • 0

Table Ou Query?


Cleverson Honório Gouvêa

Pergunta

Por exemplo eu uso um Form e faço o Seguinte, na propiedade DblClick do BDGrid uso

Frm_Incluir.ed_nome.Text:=Table1NOME.Value;

Frm_Incluir.ed_endereco.text:=Table1ENDERECO.value;

Frm_Incluir.ed_telefone.text:=Table1TELEFONE.value;

Frm_Incluir.ed_celular.Text:=Table1CELULAR.value;

Frm_Clientes.Close;

Para que os dados que estão sendo vizualizados passem diretamente pro Form de Cadastro, já que o Cliente já possui um Cadastro!!!

Porém o meu DBGrid fica cheio de nomes Repetidos pois eu não posso usar a Query para fazer:

With Query1 do

begin

close;

sql.clear;

sql.add('order by NOME Asc');

open;

end;

Aí como eu fico??? O Query faz o que eu quero? Que a Table está fazendo facinho, facinho???

A Table faz o que o Query faz??? Pois preciso dos dois!!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Porém o meu DBGrid fica cheio de nomes Repetidos pois eu não posso usar a Query para fazer:

With Query1 do

begin

close;

sql.clear;

sql.add('order by NOME Asc');

open;

end;

Aí como eu fico??? O Query faz o que eu quero? Que a Table está fazendo facinho, facinho???

Cleverson, descupe mas não entendi. Parece que falta algo nesta sua query.

E esse lance de nomes repetidos???

Que banco de dados você utiliza?

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Me perdoe amigo, tenho me empolgado nas perguntas e as vezes elas perdem um pouco da clareza!!!

Uso interbase, com uma Table e um DBGrid, só que no DBGrid os Registros iguais aparecem!!! EX:.

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Beatriz 4499-3345 3344-2344 Rua das laranjas

Beatriz 4499-3345 3344-2344 Rua das laranjas

Beatriz 4499-3345 3344-2344 Rua das laranjas

A minha table tem como index o código!!!

Queria que quando iguais fossem mostrados apenas um deles ('Se possivel em ordem alfabética')!!! EX:.

Beatriz 4499-3345 3344-2344 Rua das laranjas

Joaquim 3322-3344 99229922 Rua das Calhas

Luzia 3554-4456 6965154 Rua das Feias

Pois esse DBGrid serve justamente para adiantar o precesso de Cadastro, ao clicar nesses dados o Formulário de inclusão já recebe automáticamente os Dados, inserindo apenas um novo Código ao mesmo!!!

Com a Query acho que cheguei a conseguir fazer com que os dados não se repetissem, não me lembro se foi com esse código, pois até hoje não entendo muito bem desses comandos SQL, o que me traz dificuldades para Trabalhar com as Query`s! Porém, não consegui fazer com que os dados fossem adicionados automáticamente ao Formuçário de inclusão entende?

Link para o comentário
Compartilhar em outros sites

  • 0
Uso interbase, com uma Table e um DBGrid, só que no DBGrid os Registros iguais aparecem!!! EX:.

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Joaquim 3322-3344 99229922 Rua das Calhas

Beatriz 4499-3345 3344-2344 Rua das laranjas

Beatriz 4499-3345 3344-2344 Rua das laranjas

Beatriz 4499-3345 3344-2344 Rua das laranjas

Cleverson, se esses dados vem de uma TTable, então significa que as informações dos clientes ficam duplicadas mesmo. Certo?! Se for, a menos que seja proposital, parece que há um problema de modelagem (normalização dos dados - Wikipedia), já que usualmente não devemos duplicar este tipo de informação.

A minha table tem como index o código!!!

Queria que quando iguais fossem mostrados apenas um deles ('Se possivel em ordem alfabética')!!! EX:.

Pelo que coloquei acima, para listar apenas uma ocorrência do registro de cliente, você teria mesmo que utilizar uma query com distinct, lembrando que qualquer campo em seu select que possa estar diferente para o mesmo cliente, resultará numa linha extra e, neste caso, ainda resultaria em mais que uma ocorrência do mesmo cliente.

A questão, da ordenação alfabética, em termos do uso de um TTable, seria resolvido pela criação de um índice por nome. Já utilizando uma query, basta adicioná-la na cláusula ORDER BY.

Pois esse DBGrid serve justamente para adiantar o precesso de Cadastro, ao clicar nesses dados o Formulário de inclusão já recebe automáticamente os Dados, inserindo apenas um novo Código ao mesmo!!!
Levando em conta a questão da normalização, acredito que isto não seria necessário.

Com a Query acho que cheguei a conseguir fazer com que os dados não se repetissem, não me lembro se foi com esse código, pois até hoje não entendo muito bem desses comandos SQL, o que me traz dificuldades para Trabalhar com as Query`s!

você pode procurar por alguns tutoriais na net. Dê uma olhada em Apostilando, Edu Delphi Page (Veja apostilas).

um exemplo de select com distinct seria:

SELECT distinct NOME, FONE1, FONE2, ENDERECO

FROM CLIENTE

ORDER BY NOME

levando em conta o comentário que fiz no início do post

[]s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...