APROVEITAR

Fórum Problema para utilizar os parametros (params) de um SQLDataSet #467576

22/01/2014

0

Olá Pessoal,

Eu criei no SQLDataSet o seguinte comando
Insert into ENTRADA (DATA_ENTRADA, ID_PRODUTO, MOTIVO_ENTRADA, QTD_ENTRADA)
     values (:DATA_ENTRADA, :ID_PRODUTO, :MOTIVO_ENTRADA, :QTD_ENTRADA)


Porém ele nao coloca os Parametros (Params) automaticamente, entao eu fui la e coloquei os parametros e define que tipo eles são no casoem ordem fica (ftdate, ftInteger, ftString, ftFloat), mais agora ele está dizendo a seguinte mensagem
validation error for column ID_PRODUTO, value "***null***"

Eu ja procurei muito o erro não consigo achar, e eu sou iniciante em delphi e fica mais dificil ainda alguem sabe me dizer o porque ocorre esse erro?

Desde já agradecido!
Edson Vilhalba

Edson Vilhalba

Responder

Posts

22/01/2014

Járabe Emanuel

O que vc está querendo fazer com esse comando?
Responder

Gostei + 0

22/01/2014

Edson Vilhalba

Eu estou querendo inserir um novo produto. Ou seja esse ID_PRODUTO é uma chave estrangeira que é pego pelo tabela da entrada, que vai ser utilizado para quando inserir na entrada seja inserido no produto também.
A entrada serve só para ter os registros de cadastros de produtos realizados.
Responder

Gostei + 0

22/01/2014

Fabio Cardoso

bom se voce esta usando dbexpress, eu no seu lugar usaria algo do tipo:

SQLQuery2.close;
SQLQuery2.sql.clear;
SQLQuery2.sql.add('select id_produto as id from entradas where entradas.descricao = 'descricao x');
SQLQuery2.open;
//Usei essa query so para efeito de exemplo a fonte de dados do id do produto e do seu codigo fonte ai

SQLQuery1.close;
SQLQuery1.sql.clear;
SQLQuery1.sql.add('Insert into ENTRADA (DATA_ENTRADA, ID_PRODUTO, MOTIVO_ENTRADA, QTD_ENTRADA)') '+
'values (:DATA_ENTRADA, :ID_PRODUTO, :MOTIVO_ENTRADA, :QTD_ENTRADA) ';
SQLQuery1.parambyname('DATA_ENTRADA').date:= now;
SQLQuery1.parambyname('ID_PRODUTO').asinteger := SQLQuery2.fieldbyname('id').asinteger;
SQLQuery1.parambyname('MOTIVO_ENTRADA').asString := 'Motivo x';
SQLQuery1.parambyname('QTD_ENTRADA').asinteger := 6;
SQLQuery1.execsql;


dessa forma acima voce conseguira dar entrada de dados normalmente, qualquer coisa me diga
espero ter ajudado





Responder

Gostei + 0

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

Aceitar