Fórum auto incremento com params #276132
08/04/2005
0
Amigos, tenho esta tabela
para dar um insert na tabela estou usando este código
No params[4].asinteger, coloquei o valor 0, mas não sei o que devo fazer, pois não consigo inserir sem receber a mensagem de erro de violação de chave integ_16.
A pergunta é, como posso inserir dados desta forma, utilizando params, sendo que a tabela tem este campo auto-incremento? tenho que alterar alguma coisa na query?
Já tentei de várias formas e não consegui.
Obrigado pela atenção
Sanses
CREATE TABLE "SENHA"
(
"ID"INTEGER NOT NULL,
"CODIGO"VARCHAR(7),
"TEMPO"TIME,
"USUARIO"VARCHAR(12),
"DATA"DATE,
"HORA"TIME,
"VENDEDOR"VARCHAR(20),
"CODVENDEDOR"CHAR(4),
"VALOR"NUMERIC(10, 2),
PRIMARY KEY ("ID")
);
////O generator
CREATE GENERATOR "GENSENHA";
////A trigger
SET TERM ^ ;
CREATE TRIGGER "TRIGSENHA" FOR "SENHA"
ACTIVE BEFORE INSERT POSITION 0
AS
begin
if (new.id is null) then new.id = gen_id (gensenha,1);
end
^
COMMIT WORK ^
SET TERM ;^
para dar um insert na tabela estou usando este código
with dm.qsenha do begin close; sql.Clear; sql.add(´insert into senha (CODIGO, CODVENDEDOR, DATA, HORA, ID, TEMPO, USUARIO, VALOR, VENDEDOR)´); sql.Add(´values (:CODIGO, :CODVENDEDOR, :DATA, :HORA, :ID, :TEMPO, :USUARIO, :VALOR, :VENDEDOR)´); params[0].asstring := label6.Caption; params[1].asstring := frmshservidor.coduser; params[2].asdate := date; params[3].AsTime := time; params[4].asinteger := 0; params[5].astime := strtotime(copy(combobox1.text,1,5)); params[6].asstring := label5.Caption; params[7].asfloat := strtofloat(val); params[8].asstring := frmshservidor.usuario; execsql; dm.IBTransaction1.CommitRetaining;
No params[4].asinteger, coloquei o valor 0, mas não sei o que devo fazer, pois não consigo inserir sem receber a mensagem de erro de violação de chave integ_16.
A pergunta é, como posso inserir dados desta forma, utilizando params, sendo que a tabela tem este campo auto-incremento? tenho que alterar alguma coisa na query?
Já tentei de várias formas e não consegui.
Obrigado pela atenção
Sanses
Sanses
Curtir tópico
+ 0
Responder
Posts
25/08/2005
Fabiobb
Tudo bem ?
Pode ser que sua pergunta tenha sido respondida.
Estou respondendo pq tem pessoas que sabem mais não auxiliam outra pessoa.
É o seguinte, pra funcionar essa inclusão não adicione o campo id no sql.
Quando tu passa o valor zero não é mesma que nulo.
Simplesmente não passa o nome do campo e a cláusula.
Pode ser que sua pergunta tenha sido respondida.
Estou respondendo pq tem pessoas que sabem mais não auxiliam outra pessoa.
É o seguinte, pra funcionar essa inclusão não adicione o campo id no sql.
Quando tu passa o valor zero não é mesma que nulo.
Simplesmente não passa o nome do campo e a cláusula.
Responder
Gostei + 0
25/08/2005
Fabiobb
Tudo bem ?
Pode ser que sua pergunta tenha sido respondida.
Estou respondendo pq tem pessoas que sabem mais não auxiliam outra pessoa.
É o seguinte, pra funcionar essa inclusão não adicione o campo id no sql.
Quando tu passa o valor zero não é mesma coisa que nulo.
Simplesmente não passa o nome do campo no sql e o valor no params.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)