Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
Marcos Barbosa

Auto-Increment

Recommended Posts

Galera, comecei hj a estudar o firebird e IB expert. Já consegui criar o BD e as tabelas no IB expert.

No IB expert tem uma função chamada Generators, onde posso indicar os campos que são AutoIncrement, então peguei no campo CODIGO e coloquei-o como primary key e autoincrement.

No delphi para fazer a conexão com o BD, comecei a usar os componentes da palheta DBExpress.

Já que na tabela o campo CODIGO está como AutoIncrement eu preciso fazer uma rotina no delphi para ele auto-numerar ?

Eu tentei fazer direto e está dando erro, o código no delphi é esse:

 

        Begin // 1

           DM.QRY_usuario.Close;

           DM.QRY_usuario.SQL.Clear;

           DM.QRY_usuario.SQL.Add('INSERT INTO login (usuario, senha) VALUES ('+QuotedStr(eUsuario.Text)+','+QuotedStr(eSenha.Text)+')');

           DM.QRY_usuario.ExecSQL;


           ShowMessage('Usuário Cadastrado com Sucesso !!!');

           eUsuario.Clear;

           eSenha.Clear;

        end  // Begin1


Eu estav usando o ACCESS e com esse código eu conseguia gerar o código autoincrement.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, comecei hj a estudar o firebird e IB expert. Já consegui criar o BD e as tabelas no IB expert.

No IB expert tem uma função chamada Generators, onde posso indicar os campos que são AutoIncrement, então peguei no campo CODIGO e coloquei-o como primary key e autoincrement.

No delphi para fazer a conexão com o BD, comecei a usar os componentes da palheta DBExpress.

Já que na tabela o campo CODIGO está como AutoIncrement eu preciso fazer uma rotina no delphi para ele auto-numerar ?

Eu tentei fazer direto e está dando erro, o código no delphi é esse:

 

        Begin // 1

           DM.QRY_usuario.Close;

           DM.QRY_usuario.SQL.Clear;

           DM.QRY_usuario.SQL.Add('INSERT INTO login (usuario, senha) VALUES ('+QuotedStr(eUsuario.Text)+','+QuotedStr(eSenha.Text)+')');

           DM.QRY_usuario.ExecSQL;


           ShowMessage('Usuário Cadastrado com Sucesso !!!');

           eUsuario.Clear;

           eSenha.Clear;

        end  // Begin1


Eu estav usando o ACCESS e com esse código eu conseguia gerar o código autoincrement.

Amigo, o macete é o seguinte, quando vc estiver na aba autoincrement do campo no ibexpert, selecione a opção create generator e logo em seguida clique na aba trigger, marque a opção create trigger e com isso vai aparecer um código logo abaixo, parecido com esse:

CREATE TRIGGER MANUAIS_BI FOR MANUAIS

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

IF (NEW.CODIGO IS NULL) THEN

NEW.CODIGO = GEN_ID(GEN_MANUAIS_ID,1);

END

mude o codigo para o seguinte(OBS: obviamente com sua tabela e seu campo é claro):

CREATE TRIGGER MANUAIS_BI FOR MANUAIS

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

IF (NEW.CODIGO IS NULL or NEW.CODIGO = 0) THEN

NEW.CODIGO = GEN_ID(GEN_MANUAIS_ID,1);

END

adicionando apenas: or NEW.CODIGO = 0

para que o codigo seja gerando tando com o valor nulo quanto 0

após isso é só comfirmar e comitar

teste adicionando um registro pelo ibexpert mesmo.

qualquer coisa, add ai: [email protected]

Boa Sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...