Problema com dbgrid em tempo de execução
Olá pessoal tudo bem?
Tenho um sistema onde existe um formconsultar com dbgrid..
ao clicar no registro selecionado no grid abre-se um novo formalterar ok
o formconsultar tem uma Dbcombobox com varios itens..
Ao consultar o 1 item ele retorna os dados..
Ao consultar outro ele retorna erro
'ClientDataSet: Cannot perform thid operation on a closed dataset'.
Segue os códigos..
procedure Tfrmconsultar.btnconsultarClick(Sender: TObject);
begin
DM.ADOQuerySql.Open;
DM.ClientDataSet.close;
DM.ADOQuerySQL.SQL.CLEAR;
DM.ADOQuerySQL.SQL.ADD('select codigo, filial, ip, nomepc, placamae, modelo, processador, placavideo, hd, placasom, memoria, placarede, sistemaop, soquete, setor from componentes_filiais where filial like :filial');
DM.ADOQuerySQL.Parameters.ParamByName('filial').Value:= combobox.text;
DM.ClientDataSet.Open;
DM.ADOQuerySql.Close;
end;
Procedure Tfrmalterar.DBEdit1Change(Sender: TObject);
begin
DM.ADOQuerySql.open;
DM.ClientDataSet.Locate('codigo', DBedit1.text, [loCaseInsensitive, loPartialKey]);
end;
Gostaria que me ajudassem neste caso.
Grato.
Tenho um sistema onde existe um formconsultar com dbgrid..
ao clicar no registro selecionado no grid abre-se um novo formalterar ok
o formconsultar tem uma Dbcombobox com varios itens..
Ao consultar o 1 item ele retorna os dados..
Ao consultar outro ele retorna erro
'ClientDataSet: Cannot perform thid operation on a closed dataset'.
Segue os códigos..
procedure Tfrmconsultar.btnconsultarClick(Sender: TObject);
begin
DM.ADOQuerySql.Open;
DM.ClientDataSet.close;
DM.ADOQuerySQL.SQL.CLEAR;
DM.ADOQuerySQL.SQL.ADD('select codigo, filial, ip, nomepc, placamae, modelo, processador, placavideo, hd, placasom, memoria, placarede, sistemaop, soquete, setor from componentes_filiais where filial like :filial');
DM.ADOQuerySQL.Parameters.ParamByName('filial').Value:= combobox.text;
DM.ClientDataSet.Open;
DM.ADOQuerySql.Close;
end;
Procedure Tfrmalterar.DBEdit1Change(Sender: TObject);
begin
DM.ADOQuerySql.open;
DM.ClientDataSet.Locate('codigo', DBedit1.text, [loCaseInsensitive, loPartialKey]);
end;
Gostaria que me ajudassem neste caso.
Grato.
Mauricio Nicoli
Curtidas 0
Respostas
Joel Rodrigues
05/09/2012
O erro é no evento OnClick do btnconsultar ou no edit? O que está ocorrendo é que você está tentando acessar algum recurso do ClientDataSet com ele estando fechado. É preciso chamar o método Open em algum lugar.
GOSTEI 0