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!


Rssampaio

Rssampaio

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!


Responder

Gostei + 0

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

Aceitar