Fórum ERRO NO DBGRID AO CLICAR EM UMA LINHA #389898

04/11/2010

0

BOA NOITE PESSOAL....
MINHA DUVIDA EO SEGUINTE..
TO USANDO O SEGUINTE CODIGO PARA QUE QUANDO EU CLICAR NO DBGRID NA LINHA SELECIONADA OS DADO DA QUELA LINHA VAO PARA A TABELA CLIENTE PEDIDO LOGO SERA LISTADO NO DBGRID DO FORMULARIO CLIENTE PEDIDO
EIS O SEGUITE CODIGO

procedure TFRMPROCPRODUTOS.DBGrid1DblClick(Sender: TObject);
var idx :integer;
begin

FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.append;

with DBGrid1.DataSource do
    if DBGrid1.SelectedRows.Count > 0 then

      for Idx :=0 to DBGrid1.SelectedRows.Count-1 do
      begin

        TBLPRODUTOS.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[Idx]));

        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('CDPRODUTO').Value :=TBLPRODUTOS.FieldByName('CDPRODUTO').Value;
        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('NOME PRODUTO').Value := TBLPRODUTOS.FieldByName('NOME PRODUTO').Value;
        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('QUANTIDADE ').Value := TBLPRODUTOS.FieldByName('QUANTIDADE').Value;
        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('VALOR').Value := TBLPRODUTOS.FieldByName('VALOR').Value;

        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.Append;

      end;
FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.ApplyUpdates;
FRMPROCPRODUTOS.Close;
      end;

end.
SO QUE O PROBLEMA NA HORA Q CLICO NA LINHA DO GRID ONDE ESTA O PRODUTO QUE EU QUERO DA O ERRO DE KEY VIOLATION
AH LEMBRANDO TO USANDO AS TABELA PARADOX ...   
Fabio Oliveira......

Fabio Oliveira......

Responder

Posts

04/11/2010

Rafael Ribeiro

Fábio, Bom Dia!

Tente da seguinte forma:


procedure TFRMPROCPRODUTOS.DBGrid1DblClick(Sender: TObject);

var idx :integer;

begin



with DBGrid1.DataSource do

    if DBGrid1.SelectedRows.Count > 0 then



      for Idx :=0 to DBGrid1.SelectedRows.Count-1 do

      begin


        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.append;


        TBLPRODUTOS.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[Idx]));



        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('CDPRODUTO').Value :=TBLPRODUTOS.FieldByName('CDPRODUTO').Value;

        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('NOME PRODUTO').Value := TBLPRODUTOS.FieldByName('NOME PRODUTO').Value;

        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('QUANTIDADE ').Value := TBLPRODUTOS.FieldByName('QUANTIDADE').Value;

        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.FieldByName('VALOR').Value := TBLPRODUTOS.FieldByName('VALOR').Value;
        FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.post; 


      end;

FRMNOVOPEDIDO.TBLCLIENTEPRODUTO.ApplyUpdates;

FRMPROCPRODUTOS.Close;

      end;



end.







Responder

Gostei + 0

04/11/2010

Fabio Oliveira......

Bom dia Rafael Ribeiro...obrigado pela ajuda creio que o erro nao esteja no codigo tive olhando aqui pode ser algo no meu relacionamento das tabelas tblcliente e tbl clientesproduto  o relacionamento de um para muitos minhas tabelas estao assim oh 

JA NO FORMULARIO  NO TTABLE CLIENTEPROUDO FIZ O O RELACIONAMENTO DA SEGUINTE FORMA 
JA MUDEI VARIAS COISAS JA JA NAO SEI ONDE MUDAR 

SE ALGUEM TIVER ALGUMA IDEIA 
Responder

Gostei + 0

04/11/2010

Rafael Ribeiro

Você tem que colocar o CDCliente como inteiro nas duas tabelas.
Responder

Gostei + 0

04/11/2010

Fabio Oliveira......

mas neste caso o relacionamento ta certo ?
Responder

Gostei + 0

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

Aceitar