Não aparece registros no DBGRID

12/12/2013

0

Olá pessoal,

Estou com um DBGrid adicionado no meu form. Esta configurado meu DATASOURCE esta configurado corretamente. O DBgrid a propriedade DATASOURCE esta configurada corretamente. Mesmo assim não aparece os registros (Tem 5 registros no Banco). o que pode ser?
Adriano Pinheiro

Adriano Pinheiro

Responder

Posts

12/12/2013

Francine Melo

Você está ativando o DATASET ligado ao DATASOURCE? se sim tenta ver com a propriedade RECORDCOUNT o números de registros.
Responder

12/12/2013

Járabe Emanuel

Se o DataSource está linkado ao DBgrid e as informações não aparecem, é hora de verificar o link da tua babela com DataSource,
Se tudo isso está correto, uma provável explicação seria a forma de como vc está linkando os campos com o DBGrid,
Se vc criou manualmente as colunas no DBGrid Precisa linkar os campos da tabela com as colunas que vc criou.

Se foi o caso, Dê dois cliks em cima do dbgrid irá aparecer a janela Editing, Clik na coluna que vc criou e na propriedade FieldName selecione o campo da tabela correspondente aquela coluna.
Responder

12/12/2013

Adriano Pinheiro

eu refis os passos desde o começo...desde a criação do dataset até a conexão do datasource. mesmo assim não funcionou!
Responder

12/12/2013

Járabe Emanuel

Vc criou manualmente as colunas no DBGrid? se sim apague-as e compile o pra ver se resolveu o problema.
Responder

13/12/2013

Rodolpho Silva

Poste aqui o código que você está usando
Responder

13/12/2013

Adriano Pinheiro

   procedure novoClick(Sender: TObject);
    procedure salvarClick(Sender: TObject);
    procedure cancelarClick(Sender: TObject);
    procedure editarClick(Sender: TObject);
    procedure excluirClick(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure primeiroClick(Sender: TObject);
    procedure anteriorClick(Sender: TObject);
    procedure proximoClick(Sender: TObject);
    procedure ultimoClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure btnAdicionarClick(Sender: TObject);
    procedure btnEntradaClick(Sender: TObject);
    procedure btnSaidaClick(Sender: TObject);
    procedure btnPesquisarClick(Sender: TObject);
    procedure ativarBotoes;
    procedure desativarBotoes;
    procedure limparEdit;
    procedure corEdit;
    procedure Panel1Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  formCont_Acesso: TformCont_Acesso;
  contador : integer = 0;
implementation

uses UDM_ControleDeAcesso, SqlExpr;// ADD "UMD" (BANCO DE DADOS)

{$R *.dfm}
procedure TformCont_Acesso.btnPesquisarClick(Sender: TObject);
begin
  //desabilitarEdit;
  ativarBotoes;
  limparEdit;
  novo.Enabled:=false;
  salvar.Enabled:=false;
  btnAdicionar.Enabled:=false;
  edtNome.Color:=clMenuBar;
  cbbMotivo.Color:=clMenuBar;
  edtTelefone.Color:=clMenuBar;
  edtEndereco.Color:=clMenuBar;
  edtDocumento.Color:=clMenuBar;
  edtEntrada.Color:=clMenuBar;
  edtSaida.Color:=clMenuBar;
  btnEntrada.Enabled:=false;
  btnSaida.Enabled:=false;
end;

procedure TformCont_Acesso.novoClick(Sender: TObject);
var i : integer;

begin
  // INSERINDO CADASTRO NO BANCO
  DM_Controle.Query.Close;
  DM_Controle.Query.SQL.Text := 'SELECT MAX(COD_ACESSO) AS crescente FROM CONT_ACESSO'; // PEGA O ULTIMO REGISTRO
  DM_Controle.query.OPEN;
  //DM_Controle.Query.SQL.Text := 'INSERT INTO CONT_ACESSO (HORA_SAI) VALUES (NULL)'; // ADICIONA VALOR NULO AO CAMPO HORA_SAI NO BANCO
  //DM_Controle.Query.ExecSQL;
  //DM_Controle.query.fieldbyname('HORA_SAI').AsString := 'null';
  contador := 1;
  if DM_Controle.query.fieldbyname('crescente').asinteger >0 then  // VERIFICA SE É ZERO
    contador := DM_Controle.query.fieldbyname('crescente').asinteger + 1;  //ACRESCENTA +1
  DM_Controle.cdsControleDeAcesso.Insert;
  DM_Controle.cdsControleDeAcessoCOD_ACESSO.Value := contador; //INSERE O VALOR DO CONTADO NO BANCO
  desativarBotoes;
  limparEdit;
  corEdit;
  salvar.Enabled:=true;
  cancelar.Enabled:=true;
  btnAdicionar.Enabled:=true;
  btnEntrada.Enabled:=true;
  Panel1.Enabled:=true;
  edtNome.Enabled:=true;
  mensagem.Caption:='Novo Cadastro';
end;

procedure TformCont_Acesso.salvarClick(Sender: TObject);
begin
  // SALVANDO CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.ApplyUpdates(0);
  desativarBotoes;
  limparEdit;
  corEdit;
  novo.Enabled:=true;
  btnSaida.Enabled:=false;
  btnPesquisar.Enabled:=true;
  mensagem.Caption:='Cadastro Salvo!';
  mensagem.Color:= clBlack;
end;

procedure TformCont_Acesso.cancelarClick(Sender: TObject);
begin
  // CANCELANDO CADASTRO
  DM_Controle.cdsControleDeAcesso.Cancel;
  limparEdit;
  desativarBotoes;
  corEdit;
  novo.Enabled:=true;
  btnPesquisar.Enabled:=true;
  btnEntrada.Enabled:=false;
  btnSaida.Enabled:=false;
  mensagem.Caption:='Cancelado!';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.editarClick(Sender: TObject);
begin
  // EDITANDO CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.Edit;
  desativarBotoes;
  salvar.Enabled:=true;
  cancelar.Enabled:=true;
  btnAdicionar.Enabled:=true;
  corEdit;
  mensagem.Caption:='Editar Cadastro';
  mensagem.Color:= clGreen;
  btnSaida.Enabled:= true;
  btnEntrada.Enabled:=false;
end;

procedure TformCont_Acesso.excluirClick(Sender: TObject);
begin
  //  CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.Delete;
  mensagem.Caption:='Cadastro Deletado!';
  mensagem.Color:= clRed;
end;

procedure TformCont_Acesso.ToolButton5Click(Sender: TObject);
begin
  // ATUALIZANDO CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.Refresh;
  mensagem.Caption:='Atualizado!';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.primeiroClick(Sender: TObject);
begin
  // INDO PARA O PRIMEIRO CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.First;
  mensagem.Caption:='Primeiro Cadastro';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.anteriorClick(Sender: TObject);
begin
  // INDO PARA O CADASTRO ANTERIOR NO BANCO
  DM_Controle.cdsControleDeAcesso.Prior;
  mensagem.Caption:='Cadastro Anterior';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.proximoClick(Sender: TObject);
begin
  // INDO PARA O CADASTRO PRÓXIMO NO BANCO
  DM_Controle.cdsControleDeAcesso.Next;
  mensagem.Caption:='Próximo Cadastro';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.ultimoClick(Sender: TObject);
begin
  // INDO PARA O ÚLTIMO CADASTRO NO BANCO
  DM_Controle.cdsControleDeAcesso.Last;
  mensagem.Caption:='Último Cadastro';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.FormActivate(Sender: TObject);
begin
  Panel1.Enabled:=true;
end;

procedure TformCont_Acesso.btnAdicionarClick(Sender: TObject);
begin
  // VAI PARA TELA NOVO MOTIVO
  formNovo_Motivo.ShowModal;
end;

procedure TformCont_Acesso.btnEntradaClick(Sender: TObject);
begin
  //ADICIONA DATA E HORA NO EDIT
  DM_Controle.cdsControleDeAcessoHORA_ENT.Text:= edtEntrada.Text;
  edtEntrada.Text:= datetimetostr(now);
  btnEntrada.Enabled:=false;
  btnSaida.Enabled:=true;
  edtEntrada.ReadOnly:= true;
  edtSaida.ReadOnly:= true;
  mensagem.Caption:='Horário da Entrada';
  mensagem.Color:= clNavy;
end;

procedure TformCont_Acesso.btnSaidaClick(Sender: TObject);
begin
  //ADICIONA DATA E HORA NO EDIT
  DM_Controle.cdsControleDeAcessoHORA_SAI.Text:= edtSaida.Text;
  edtSaida.Text:= datetimetostr(now);
  btnEntrada.Enabled:=false;
  btnSaida.Enabled:=true;
  edtEntrada.ReadOnly:= true;
  edtSaida.ReadOnly:= true;
  mensagem.Caption:='Horário da Saída';
  mensagem.Color:= clNavy;
end;



procedure TformCont_Acesso.ativarBotoes;
begin
  // ATIVAR BOTÕES
  salvar.Enabled:= true;
  novo.Enabled:= true;
  cancelar.Enabled:=true;
  editar.Enabled:=true;
  excluir.Enabled:=true;
  primeiro.Enabled:=true;
  anterior.Enabled:=true;
  proximo.Enabled:=true;
  ultimo.Enabled:=true;
  btnPesquisar.Enabled:=true;
  btnAdicionar.Enabled:=true;
end;

procedure TformCont_Acesso.desativarBotoes;
begin
  // DESATIVAR BOTÕES
  salvar.Enabled:= false;
  novo.Enabled:= false;
  cancelar.Enabled:=false;
  editar.Enabled:=false;
  excluir.Enabled:=false;
  primeiro.Enabled:=false;
  anterior.Enabled:=false;
  proximo.Enabled:=false;
  ultimo.Enabled:=false;
  btnPesquisar.Enabled:=false;
  btnAdicionar.Enabled:=false;
end;

procedure TformCont_Acesso.limparEdit;
begin
  // LIMPANDO EDIT
  edtNome.Text:='';
  edtDocumento.Text:='';
  edtTelefone.Text:='';
  edtEndereco.Text:='';
  cbbMotivo.Text:='';
  edtEntrada.Text:='';
  edtSaida.Text:='';
end;

procedure TformCont_Acesso.corEdit;
begin
  // COLORINDO EDIT
  edtNome.Color:=clWhite;
  edtDocumento.Color:=clWhite;
  edtTelefone.Color:=clWhite;
  edtEndereco.Color:=clWhite;
  edtEntrada.Color:=clWhite;
  edtSaida.Color:=clWhite;
  cbbMotivo.Color:=clWhite;
end;

procedure TformCont_Acesso.Panel1Click(Sender: TObject);
begin
  Panel1.Enabled:=true;
end;

procedure TformCont_Acesso.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
// FAZER LINHA ZEBRADA DO DBGRID
  with DBGrid1 do
    begin
      if Odd( DataSource.DataSet.RecNo) then
        Canvas.Brush.Color := clSilver
      else
        Canvas.Brush.Color := clMoneyGreen;
        Canvas.FillRect(Rect);
        DefaultDrawColumnCell(Rect,DataCol,Column,State);
      end;
end;

end.
Responder

13/12/2013

Adriano Pinheiro

refiz o DBgrid e não funcionou! Aparecem as colunar certas mas não aparece os registros. Quando eu crio um registro e salvo...ele fica na DBGrid....mas qdo eu fecho o programa e abro novamente os registros não aparecem....mas eles estão no banco...
Responder

13/12/2013

Adriano Pinheiro

[img]http://arquivo.devmedia.com.br/forum/imagem/351079-20131213-110123.jpg[/img]
Responder

13/12/2013

Járabe Emanuel

Amigo axo que teu problema é o teu código do OnDrawColumnCell, comente ele e tente novamente.
procedure TformCont_Acesso.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
// FAZER LINHA ZEBRADA DO DBGRID
  with DBGrid1 do
    begin
      if Odd( DataSource.DataSet.RecNo) then
        Canvas.Brush.Color := clSilver
      else
        Canvas.Brush.Color := clMoneyGreen;
        Canvas.FillRect(Rect);
        DefaultDrawColumnCell(Rect,DataCol,Column,State);
      end;
end;


Espero ter ajudado
Responder

13/12/2013

Adriano Pinheiro

Não funcionou...comentei...tirei o DBGrid1DrawColumnCell...não funcionou...estou rachando a cabeça aqui! rsrs
Responder

16/12/2013

Claudio Andrade

Estou com um problema parecido, so que no meu caso é o TUsers que esta causando o erro

https://www.devmedia.com.br/forum/dbedit-apagando-os-dados-ao-sair-um-pouco-de-urgencia/448470
Responder

02/07/2014

Bueno

olá, tudo bom? , então não sei se vai funcionar, no meu caso deu certo.
1-Clique duas vezes na DBgrid( vai abrir uma janela com todos seus campos , certo?)
2-coloque em excluir
nesse momento sua DBgrid vai "atualizar" e dessa forma aparece todos seus dados que estão inseridos em seu Banco.
No meu caso deu certo, espero q no seu também.
Espero ter ajudado!!!!!!
Responder

02/07/2014

Carlos Bernardo

Desativa o ClientDataSet no Data Module .
e no seu formulario, no OnShow vc coloca
DM_Controle.cdsControleDeAcesso.Close;
DM_Controle.cdsControleDeAcesso.Open;

e ve se funciona
Responder

02/07/2014

Carlos Bernardo

Desativa o ClientDataSet no Data Module .
e no seu formulario, no OnShow vc coloca
DM_Controle.cdsControleDeAcesso.Close;
DM_Controle.cdsControleDeAcesso.Open;

e ve se funciona
Responder

31/03/2018

Thiago

refiz o DBgrid e não funcionou! Aparecem as colunar certas mas não aparece os registros. Quando eu crio um registro e salvo...ele fica na DBGrid....mas qdo eu fecho o programa e abro novamente os registros não aparecem....mas eles estão no banco...
<br />
<br />
Tbm esta acontecendo cmg porem o meu é C# eu criei um formulário(cadastro de consultas) e um banco de dados (ja criei td), e quando compilo e vou inserir dados nele e salvo não aparece no datagrid, começou a dar esse problema dps que configurei o TableAdapter. É que eu faço curso de C# e agr to repetindo os passos pela apostila que é interativa para não esquecer quando avançar para outro módulo. help me, please
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar