Fórum Problema com dbgrid #424632
25/09/2012
0
tenho um form com dbgrid ok
no form tem um botão consultar outro para excluir e outro para ver todos os registros..
o que acontece..limpo meu banco de dados certo? apago todos os registros..fica limpo..ok
ai eu entro no meu sistema..entro no form cadastrar e cadastro 3 itens em sequencia ok
dou um executar dentro do mysql para atualizar o banco ok
ai eu faço um consulta, uma exclução consulto de novo apenas um registro selecionando na combobox o item relacionado ok
só que se eu faço isso 3 ou 4 vezes o dbgrid não retorna mais o que tá no banco de dados..mesmo havendo dados lá
em tempo de execução é como eles se perdessem depois de algumas consultas ou alterações entendem..
o curioso é que tenho outro form que faz a mesma coisa e isso não acontece..
tenho datasets separados query e clientedataset providername connection datasource tudo certo e ligado..
não entendo porque acontece isso..preciso de ajuda..é urgente amigos..meu tempo para terminar o tcc tá acabando..
grato.
Mauricio Nicoli
Curtir tópico
+ 0Posts
26/09/2012
Alisson Santos
tentou debugar o programa para verificar se ele executa todos os comando corretamente.
Gostei + 0
26/09/2012
Ricardo Araujo
Gostei + 0
26/09/2012
Mauricio Nicoli
procedure Tfrmsuporteteccons.btnpesquisarClick(Sender: TObject);
begin
DM.ClientDataSetconstec.close;
DM.ADOQuerySQLconstec.SQL.CLEAR;
DM.ADOQuerySQLconstec.SQL.ADD('select codatend, filial,setor, nomepc, ip, datasup, nomefunc, descricaosup from suportetecnico where filial like :filial');
DM.ADOQuerySQLconstec.Parameters.ParamByName('filial').Value:= comboboxpesq.text;
DM.ClientDataSetconstec.Open;
frmsuporteteccons.DBGrid.Refresh;
end;
usei o comando refresh da forma correta?
um amigo de outro forum disse...
fiz certo?
Gostei + 0
26/09/2012
Leonardo Xavier
procedure Tfrmsuporteteccons.btnpesquisarClick(Sender: TObject);
begin
DM.ClientDataSetconstec.close;
DM.ADOQuerySQLconstec.SQL.CLEAR;
DM.ADOQuerySQLconstec.SQL.ADD('select codatend, filial,setor, nomepc, ip, datasup, nomefunc, descricaosup from suportetecnico where filial like :filial');
DM.ADOQuerySQLconstec.Parameters.ParamByName('filial').Value:= comboboxpesq.text;
DM.ClientDataSetconstec.Open;
frmsuporteteccons.DBGrid.Refresh;
end;
Eu faria da seguinte forma, não mudaria em nada seu código apenas acrescentaria a propriedade Prepared.
procedure Tfrmsuporteteccons.btnpesquisarClick(Sender: TObject);
begin
DM.ClientDataSetconstec.close;
DM.ADOQuerySQLconstec.SQL.CLEAR;
DM.ADOQuerySQLconstec.SQL.ADD('select codatend, filial,setor, nomepc, ip, datasup, nomefunc, descricaosup from suportetecnico where filial like :filial');
DM.ADOQuerySQLconstec.Parameters.ParamByName('filial').Value:= comboboxpesq.text;
DM.ClientDataSetconstec.Prepared;
DM.ClientDataSetconstec.Open;
frmsuporteteccons.DBGrid.Refresh;
end;
Verifique se o seu datasource não setá se perdendo, perdendo a propriedade DAtaset após muitas consultas...acontece as vezes, é só excluir o componente e colocar outro.
Gostei + 0
27/09/2012
Alisson Santos
Agora existe um curso do luciano pimenta na devmedia que ensina um procedimento para isso não ocorrer.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)