• 0
Sign in to follow this  
Cleverson Honório Gouvêa

Problemas Com Dados

Question

E aí pessoal !!! estou com um probleminha aqui quero ver se derrepente vocês podem me ajudar !!!

Tenho um Form que acessa o banco de dados e vizualiza as informações aí tenho um botão que exclui os dados " table1.delete", mas tem um problema quando o banco já está vazio dá erro, como eu faço para que retorne uma mensagem dizendo que não há dados para serem apagados ao invés de ocorrer o erro???

E esses dados também tem um campo código que tem autoincremento mas acontece que quando eu apago os dados ao invés de voltar para o inicio eles continuam a partir do ponto que pararam, isso não é problema pois vou precisar dele assim, mas como eu reseto o autoincremento se eu precisar???

Meu nome é Cleverson

Eu uso InterBase 6.5 e

Delphi 7

Sou grato desde já pela atenção!

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Tenho um Form que acessa o banco de dados e vizualiza as informações aí tenho um botão que exclui os dados " table1.delete", mas tem um problema quando o banco já está vazio dá erro, como eu faço para que retorne uma mensagem dizendo que não há dados para serem apagados ao invés de ocorrer o erro???
Cleverson, abra a tabela, posicione no início e teste se o fim foi encontrado - isto significa que a tabela está vazia:
Table1.Open;
Table1.First;
if not Table1.EOF then
begin
  while not Table1.EOF do
    Table1.Delete;
end else
  ShowMessage('A tabela está vazia')
Table1.Close;
Isto dentro do contexto que você colocou, utilizando Table1.Delete. Mas para limpar a tabela toda, você poderia simplesmente utilizar um componente query e executar uma instrução SQL para fazer isto. Algo como:
DELETE FROM NOME_TABELA (acho que é esta a sintax para o interbase).
E esses dados também tem um campo código que tem autoincremento mas acontece que quando eu apago os dados ao invés de voltar para o inicio eles continuam a partir do ponto que pararam, isso não é problema pois vou precisar dele assim, mas como eu reseto o autoincremento se eu precisar???
você deverá utilizar um componente query para executar a instrução SQL:
SET GENERATOR genenator_ID TO 0

[]s

Share this post


Link to post
Share on other sites
  • 0

Rapaz, não deu muito certo não, o código que você me passou deleta todos os dados da tabela, eu quero que ele delete apenas um, especificamente o que está sendo vizualizado!!! Que caso não haja dados para apagar apareça uma mensagem ao invés do erro!!!

Para o SQL a mesma coisa, posso usar o Query mas após o dado ser deletado a tabela precisa ser atualizada para o form não mostrar mais o Dado em tempo real! E quero deletar especificamente o dado que está a ser vizualizado!

Edited by Cleverson Honório Gouvêa

Share this post


Link to post
Share on other sites
  • 0

Cleverson, desculpe se entendi mal. Também não dei retorno porque estava ausente em férias.

Rapaz, não deu muito certo não, o código que você me passou deleta todos os dados da tabela, eu quero que ele delete apenas um, especificamente o que está sendo vizualizado!!! Que caso não haja dados para apagar apareça uma mensagem ao invés do erro!!!

if not Table1.EOF then
  Table1.Delete
else
  ShowMessage('A tabela está vazia');

Para o SQL a mesma coisa, posso usar o Query mas após o dado ser deletado a tabela precisa ser atualizada para o form não mostrar mais o Dado em tempo real!
Acho que você pode utilizar Table1.Refresh. Mas, se ainda não funcionar, então terá que fechar e abrí-la (mas acredito quen não seja o caso)

A questão do reset do auto-incremente ficou ok?

[]s

Share this post


Link to post
Share on other sites
  • 0

Ok, resolveu sim o generator!!!

O table1.refresh também só que em partes!!!

O que acontece:

Quando eu crio um novo dado, quando eu apago, os formulários ao serem vizualizados recebem as alterações em tempo real!!!

Tenho um formulário de alterações e um de consulta.

Quando eu apago um dado no Formulário de alterações, fecho ele, e vou pro de consulta ele recebe a alteração!!!!

Agora se eu alterar um dado especifico ele não recebe!?

Ex: Se o nome do cliente era Joaquim, eu vou no Form de Alterações e mudo pra José

Quando eu for no de consulta aparecerá Joaquim!?

Porém se eu fecho o aplicativo e reabro ele a alteração aparece, mas queria que aparecece em tempo real, não quero ficar abrindo e fechando o software!!!

Alguém sabe o que pode estar acontecendo, e como eu resolvo isso!??

o comando Table.refresh não serve pois já tentei!

valeu Galera!

Share this post


Link to post
Share on other sites
  • 0

Cleverson, talvez falte algo, como ApplyUpdates. Se você está utilizando transações, pode estar faltando "comitá-la".

E apenas confirmando, nas telas de consulta e alteração o Dataset é o mesmo (Table1), certo?!

[]s

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this