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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
Entre para seguir isso  

×
×
  • Criar Novo...