Fórum Problemas quando exclui - Cursor not return from Query #347293

13/10/2007

0

Olá.
Será que os amigos, porderião me ajudar com este problema?
É o seguinte.
Quando mando excluir qualquer coisa do meu grid, ele exclui a linha, mas me retorna este Erro: SQLQueryGridProdutos: Cursor not return from Query

Abaixo segue meu código:

Inicio meu form assim:

procedure TFormProdutos.FormShow(Sender: TObject);
begin
  //Joga as informacoes da tabela especificada dentro do Grid deste form
  DMVendaseServicosGrids.SQLQueryGridProdutos.Active := False;
  DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Clear;
  DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(´SELECT *, IF (REFERENCIA IS NULL,1,0) AS enulo FROM cadastro_de_produtos ORDER BY enulo ASC, REFERENCIA ASC´);
  DMVendaseServicosGrids.SQLQueryGridProdutos.Open;
  DMVendaseServicosGrids.ClientDataSetGridProdutos.Active := True;
  //Fim do código.

  //Manda o Focu para o DBGrid
  DBGridFormProdutos.SetFocus;
  //Fim do codigo.
end;



No botão excluir, este código:
Lembrando que utilizei este código desta forma, porque no meu DBGrid -> Options -> dgRowSelect := True

procedure TFormProdutos.SpeedButtonExcluirFormProdutosClick(Sender: TObject);
var
  ConfirmacaoMsg: Integer;
  CodigoGridDelete : String;
  
begin
       CodigoGridDelete := DMVendaseServicosGrids.ClientDataSetGridProdutos.FieldByName(´CODIGO_ID´).AsString;
       Begin
          ConfirmacaoMsg := Application.MessageBox (´Deseja realmente apagar este cadastro selecionado?´,´Mensagem´, MB_YESNO+ mb_DefButton1+MB_ICONQUESTION);

          If (ConfirmacaoMsg=idyes) then
            Begin
               //Deleta a informação que estiver selecionada
               DMVendaseServicosGrids.SQLQueryGridProdutos.Active := False;
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Clear;
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(´delete from cadastro_de_produtos where CODIGO_ID =´);
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(CodigoGridDelete);
               DMVendaseServicosGrids.SQLQueryGridProdutos.Open;
               //Fim do código.

               //Joga as informacoes da tabela especificada dentro do Grid deste form
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Clear;
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(´SELECT *, IF (REFERENCIA IS NULL,1,0) AS enulo FROM cadastro_de_produtos ORDER BY enulo ASC, REFERENCIA ASC´);
               DMVendaseServicosGrids.SQLQueryGridProdutos.Open;
               DMVendaseServicosGrids.SQLQueryGridProdutos.Active := True;
               //Fim do código.

               //Manda o Focu para o DBGrid
               DBGridFormProdutos.SetFocus;
               //Fim do codigo.
            end
          else
             Begin
                Abort;
             end;   
       end;
end;



Quando compilo o programa e clico em excluir, ele exclui.
Mas me retorna este erro: SQLQueryGridProdutos: Cursor not return from Query


O mais estranho, que até ontem de noite funcionava ... :x
Podem me ajudar?
Agradeço.
Att.


Devmedia

Devmedia

Responder

Posts

13/10/2007

Devmedia

Fuçando consegui.

procedure TFormProdutos.SpeedButtonExcluirFormProdutosClick(Sender: TObject); 
var 
  ConfirmacaoMsg: Integer; 
  CodigoGridDelete : String; 
begin 
       CodigoGridDelete := IntToStr(DMVendaseServicosGrids.ClientDataSetGridProdutos.FieldByName(´CODIGO_ID´).AsInteger); 
       Begin 
          ConfirmacaoMsg := Application.MessageBox (´Deseja realmente apagar este cadastro selecionado?´,´Mensagem´, MB_YESNO+ mb_DefButton1+MB_ICONQUESTION); 

          If (ConfirmacaoMsg=idyes) then 
            Begin 
               //Deleta a informação que estiver selecionada 
               DMVendaseServicosGrids.ClientDataSetGridProdutos.Active := False; 
               DMVendaseServicosGrids.SQLQueryGridProdutos.Active := False; 
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Clear; 
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(´delete from cadastro_de_produtos where CODIGO_ID =´); 
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(CodigoGridDelete); 
               DMVendaseServicosGrids.SQLQueryGridProdutos.ExecSQL; 
               //Fim do código. 

               //Joga as informacoes da tabela especificada dentro do Grid deste form 
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Clear; 
               DMVendaseServicosGrids.SQLQueryGridProdutos.SQL.Add(´SELECT *, IF (REFERENCIA IS NULL,1,0) AS enulo FROM cadastro_de_produtos ORDER BY enulo ASC, REFERENCIA ASC´); 
               DMVendaseServicosGrids.SQLQueryGridProdutos.Open; 
               DMVendaseServicosGrids.SQLQueryGridProdutos.Active := True; 
               DMVendaseServicosGrids.ClientDataSetGridProdutos.Active := True; 
               //Fim do código. 

               //Manda o Focu para o DBGrid 
               DBGridFormProdutos.SetFocus; 
               //Fim do codigo. 
            end 
          else 
             Begin 
                Abort; 
             end;    
       end; 
end; 


Att.


Responder

Gostei + 0

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

Aceitar