Problema para utilizar os parametros (params) de um SQLDataSet
Olá Pessoal,
Eu criei no SQLDataSet o seguinte comando
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!
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
Curtidas 0
Respostas
Járabe Emanuel
22/01/2014
O que vc está querendo fazer com esse comando?
GOSTEI 0
Edson Vilhalba
22/01/2014
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.
A entrada serve só para ter os registros de cadastros de produtos realizados.
GOSTEI 0
Fabio Cardoso
22/01/2014
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
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
GOSTEI 0