ERRO NO DBGRID AO CLICAR EM UMA LINHA
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 ...
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......
Curtidas 0
Respostas
Rafael Ribeiro
04/11/2010
Fábio, Bom Dia!
Tente da seguinte forma:
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.
GOSTEI 0
Fabio Oliveira......
04/11/2010
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
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
GOSTEI 0
Rafael Ribeiro
04/11/2010
Você tem que colocar o CDCliente como inteiro nas duas tabelas.
GOSTEI 0
Fabio Oliveira......
04/11/2010
mas neste caso o relacionamento ta certo ?
GOSTEI 0