Fórum Melhor jeito pra fazer auto increment no FB #55750

12/04/2006

0

Estou tentando fazer um campo auto incremento num tabela em um BD firebird mas nao estou consguindo.

Gostaria de saber qual a melhor maneira de trabalhar com campo auto incremento no firebird e usando clientdataset no delphi com Insert/post/edit ao inves de sql.

Aqui e como estou fazendo:

CREATE TABLE CLIENTE(CODCLI INTEGER NOT NULL,
NOME VARCHAR(100),
PRIMARY KEY(CODCLI));

CREATE GENERATOR GEN_CLIENTE;

CREATE TRIGGER TRG_CLIENTE
FOR CLIENTE ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODCLI IS NULL) THEN
NEW.CODCLI = GEN_ID(GEN_CLIENTE,1);
END

Se eu testo inserindo no banco com codigo sql ele funciona mas no meu projeto delphi com comando post,insert nao funciona


fico aguardando qualquer ajuda...

obrigado


Ecptavares

Ecptavares

Responder

Posts

12/04/2006

Sremulador

e melhor você utilizar os gatilhos...


Responder

Gostei + 0

12/04/2006

Ramms

Que erro é retornado kra?
Que componentes vc está usando para conexão?
flwz


Responder

Gostei + 0

12/04/2006

Ecptavares

Eu to usando sqlconnection,sqldataset,datasetprovider,clientdataset.

Me foi dito que eu teria de passar pro banco qualquer valor q dai o banco ia ver a trigger e mudar entao no delphi eu faço isso:

cdscliente.fieldbyname(´codcli´).asInteger := 1;
cdscliente.fieldbyname(´nome´).asstring := ´Eduardo Tavares´;
cdscliente.post;

ele me retorna uma mensagem q nao pode inserir dois registros com mesmo valor.


Responder

Gostei + 0

12/04/2006

Emerson Nascimento

uma das soluções seria [b:f8746280de]retirar[/b:f8746280de] a linha
IF (NEW.CODCLI IS NULL) THEN
da sua trigger


Responder

Gostei + 0

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

Aceitar