Fórum DBGRID(inserir no banco com mais de uma linha) #221134
19/03/2004
0
Estou tentando incluir numa tabela através do dbgrid informações referentes a um produto selecionado. Estou usando o dbgrid e ele está ligado na query. É +/- isso:
Embalagem Quantidade Status
cx 10 Ativo
cx 20 Ativo
cs 40 Inativo
Eu consegui apenas incluir a primeira linha, qdo passo para uma nova linha dá esse erro:
´ ...FIELD SEQPRODUTO must have um value...´ o campo SEQPRODUTO É CHAVE PRIMARIA E ESTRANGEIRA NESSA TABELA.
Consegui incluir a 1º linha da grid com esse código:
procedure TCadEmbalagem.AtualizaEmbalagem(Objeto: TIBQuery);
begin
Objeto.ParamByName(´SEQPRODUTO´).Value := edtCodProduto.IntValue;
Objeto.ParamByName(´EMBALAGEM´).Value := dbgEmbalagem.Columns[0].Field.Text;
Objeto.ParamByName(´QTDEMBALAGEM´).Value := dbgEmbalagem.Columns[1].Field.AsInteger;
Objeto.ParamByName(´STATUSEMB´).Value := dbgEmbalagem.Columns[2].Field.Text;
Objeto.ExecSQL;
end;
Esse procedimento é chamado qdo vc clica em para incluir um novo registro ou qdo para alterar um registro.
O banco de dados utilizado é o Interbase.
Se alguém poder me ajudar agradeço!
Embalagem Quantidade Status
cx 10 Ativo
cx 20 Ativo
cs 40 Inativo
Eu consegui apenas incluir a primeira linha, qdo passo para uma nova linha dá esse erro:
´ ...FIELD SEQPRODUTO must have um value...´ o campo SEQPRODUTO É CHAVE PRIMARIA E ESTRANGEIRA NESSA TABELA.
Consegui incluir a 1º linha da grid com esse código:
procedure TCadEmbalagem.AtualizaEmbalagem(Objeto: TIBQuery);
begin
Objeto.ParamByName(´SEQPRODUTO´).Value := edtCodProduto.IntValue;
Objeto.ParamByName(´EMBALAGEM´).Value := dbgEmbalagem.Columns[0].Field.Text;
Objeto.ParamByName(´QTDEMBALAGEM´).Value := dbgEmbalagem.Columns[1].Field.AsInteger;
Objeto.ParamByName(´STATUSEMB´).Value := dbgEmbalagem.Columns[2].Field.Text;
Objeto.ExecSQL;
end;
Esse procedimento é chamado qdo vc clica em para incluir um novo registro ou qdo para alterar um registro.
O banco de dados utilizado é o Interbase.
Se alguém poder me ajudar agradeço!
Rssampaio
Curtir tópico
+ 0
Responder
Posts
21/03/2004
Silvio Ribeiro
Pq vc nao tenta colocar o DBGrid ligado direto num IBTable.
Tipo... quando vc usa um DBGrid, ao inserir dados direto nele, ele estaria inserirndo os dados direto no dataset.
Se vc ligar o DBGrid num IBTable, e inserir os dados direto do grid, ele irá salvar os novos dados direto la na tabela.
Outra sugestao eh vc usar o grid só pra exibição das informações e utilizar campos para entrada e manipulação das informações. ao pressionar o botao de incluir ai os valores dos campos sao passados para a tabela do banco de dados via comando:
dataset.fieldbyname(´NOMEDOCAMPO´).AsTIPO := Edit.Text
Espero ter ajudado, qq duvida é so falar.
Abraços, Silvio!
Tipo... quando vc usa um DBGrid, ao inserir dados direto nele, ele estaria inserirndo os dados direto no dataset.
Se vc ligar o DBGrid num IBTable, e inserir os dados direto do grid, ele irá salvar os novos dados direto la na tabela.
Outra sugestao eh vc usar o grid só pra exibição das informações e utilizar campos para entrada e manipulação das informações. ao pressionar o botao de incluir ai os valores dos campos sao passados para a tabela do banco de dados via comando:
dataset.fieldbyname(´NOMEDOCAMPO´).AsTIPO := Edit.Text
Espero ter ajudado, qq duvida é so falar.
Abraços, Silvio!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)