Setar registro para edição através de consulta

13/08/2004

0

Saudações,
tenho um aplicativo de cadastro que terá em breve cerca de 32.000 registros. No form de cadastro, caso alguém queira fazer alguma alteração ou exclusão - e não use o dbnavigator, lógico - eu coloquei um edit e um speedbutton com uma query em que o usuário digita o código desejado e o form exibe o resultado, eis algumas linhas do onclick do speedbutton:
with query1 do
   begin
     close;
     parambyname(´cad´).asinteger := strtoint(edcod.text);
     open;
     if recordcount = 0 then
       showmessage(´Nenhum Registro Selecionado!´);
   end;
   dbficha.text := inttostr(query1.fieldbyname(´ficha´).asinteger);
   dbcadastro.text := inttostr(query1.fieldbyname(´cad_aluno´).asinteger);
(lembrando que o parâmetro cad é o número da ficha). Até aí tud bem, o problema é que quando eu tento alterar ou excluir a tabela seta para o primeiro registro, ou seja, mesmo com esta consulta é como se a tabela continuasse setada no primeiro registro. gostaria de saber como faço para setar o registro selecionado para editar ou excluir. Muito obrigado.


Elias Jr

Elias Jr

Responder

Posts

13/08/2004

Lucas Silva

Elias,
 with query1 do 
   begin 
     close; 
     parambyname(´cad´).asinteger := strtoint(edcod.text); 
     open; 
     if IsEmpty then  // Assim Fica bem + rapido;
        showmessage(´Nenhum Registro Selecionado!´)
      else
         Delete; // Isso deleta o registro que está apontado na query
   end; 
   dbficha.text := inttostr(query1.fieldbyname(´ficha´).asinteger); 
   dbcadastro.text := inttostr(query1.fieldbyname(´cad_aluno´).asinteger);



Responder

13/08/2004

Elias Jr

Saudações Lucas,
utilizei a sua dica e ela funciona quando quero excluir mas quando tento alterar acontece o mesmo em cada dbedit que eu clico (ou seja, se eu quero alterar o nome, quando clico no edit o nome volta para o do primeiro registro). Vou continuar tentando resolver isso. Mesmo assim obrigado por mostrar o caminho.


Responder

13/08/2004

Lucas Silva

 
     if not IsEmpty then 
       Edit; 

Depois disto é só atribuir os valores aos campos, e salvar as alterações...
  FieldByName(´campo´).asString := Edit1.text;
  post; // para salvar;


seria isto?


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar