Como aumentar ou diminuir o valor do generator...

Firebird

29/11/2005

Como aumentar ou diminuir o valor do generator...


Max.sgj

Max.sgj

Curtidas 0

Respostas

Edilcimar

Edilcimar

29/11/2005

faça uma query e coloque SET GENERATOR NOMETABELA_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador)


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

faça uma query e coloque SET GENERATOR NOMETABELA_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador)


IBQuery1.SQL.Add(´SET GENERATOR GEN_TELEFONE_ID TO ´+inttostr(5);

Está dando erro...


GOSTEI 0
Edilcimar

Edilcimar

29/11/2005

With IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add (´SET GENERATOR TELEFONE_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador));
ExecSql;
Close;
End;


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

faça uma query e coloque SET GENERATOR NOMETABELA_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador)



IBQuery1.SQL.Add(´SET GENERATOR ENDERECO CODIGO ENDERECO_GEN TO ´+inttostr(5);

Aonde estou errando...


GOSTEI 0
Edilcimar

Edilcimar

29/11/2005

leia o que eu escrive inclusive com as sublinhas, qualquer duvida pegue o generator exatamente como foi criado no bd


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

faça uma query e coloque SET GENERATOR NOMETABELA_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador)



IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´SET GENERATOR ENDERECO CODIGO ENDERECO_GEN TO ´+inttostr(5);
IBQuery1.execSQL;
IBQuery1.SQL.Clear;

Aonde estou errando...


GOSTEI 0
Edilcimar

Edilcimar

29/11/2005

em tudo, compare o que eu escrevi e o que vc está escrevendo, ta enchendo de coisa que não tem


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´SET GENERATOR ENDERECO CODIGO ENDERECO_GEN TO ´+inttostr(5));
IBQuery1.execSQL;
IBQuery1.SQL.Clear;


Aonde estou errando...


GOSTEI 0
Edilcimar

Edilcimar

29/11/2005

Sql.Add (´SET GENERATOR TELEFONE_NOMECAMPO_GEN to ´ + inttostr(NumeroGerador));
compare isto com o que vc está escrevendo, letra por letra


GOSTEI 0
Vinicius2k

Vinicius2k

29/11/2005

Como se chama o seu generator? [b:47a9d8cdaa]ENDERECO_GEN[/b:47a9d8cdaa]?
Se sim:
SET GENERATOR ENDERECO_GEN TO <valor>


Um generator não está ligado à nenhuma tabela em específico e deve ser referenciado como um objeto independente.

T+


GOSTEI 0
Edilcimar

Edilcimar

29/11/2005

é verdade que pode ter qualquer nome, porém na hora de criar tenho por prática colocar o nomedatabela_nomedocampo-gen para facilitar, por isto citei
leia o que eu escrive inclusive com as sublinhas, qualquer duvida pegue o generator exatamente como foi criado no bd



GOSTEI 0
Vinicius2k

Vinicius2k

29/11/2005

porém na hora de criar tenho por prática colocar o nomedatabela_nomedocampo-gen para facilitar

Eu também ! :)

Mas pareceu-me não ter ficado claro ao colega visto que a instrução que ele tentava passar referenciava também a tabela e campo, além do nome do generator.

T+


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

Se eu cliar duas vezes da a mensagem: cannot perform operation --DB is currently open.


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

Aonde estrou errando pois na segunda clicada informa que o banco de dados está aberto.


_DM_INTERBASE.IBDatabase1.DatabaseName:= ´C:\MaxProgramador\Pro Projeto\Teste\BD Interbase\BD.GDB´;
_DM_INTERBASE.IBDatabase1.LoginPrompt:= false;
_DM_INTERBASE.IBDatabase1.Params.Add(´user_name=sysdba´);
_DM_INTERBASE.IBDatabase1.Params.Add(´password=masterkey´);
_DM_INTERBASE.IBDatabase1.SQLDialect:= 3;
_DM_INTERBASE.IBDatabase1.DefaultTransaction:= IBTransaction1;
_DM_INTERBASE.IBDatabase1.Connected:= false;

_DM_INTERBASE.IBTransaction1.defaultdatabase:= _DM_INTERBASE.IBDatabase1;
_DM_INTERBASE.IBTransaction1.DefaultAction:= TACommitRetaining;
_DM_INTERBASE.IBTransaction1.Active:= false;

//Como Gerar no Generator...
With _DM_INTERBASE.IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add (´SET GENERATOR ENDERECO_GEN TO ´+inttostr(10)

);
ExecSql;
Close;
End;


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

Escomando excluir o valor existente do genereitor e coloca outro valor oque eu quero e quando o varor for 51 eu coloque para 50 ou 52, sem saber o valor que existe dentro do gerereitor....


GOSTEI 0
Afarias

Afarias

29/11/2005

select gen_id(nome_generator, 1) from rdb$database;

ou

select gen_id(nome_generator, -1) from rdb$database;



T+


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

Consegui o codigo mais na segunda clicada da a messagem de erro...


1: Cannot perform operation--DB is currently open.
1: Não possa executar operação--DB está atualmente aberto.

Veja o codigo completo...

_DM_INTERBASE.IBDatabase1.DatabaseName:= ´C:\MaxProgramador\Pro Projeto\Teste\BD Interbase\BD.GDB´;
_DM_INTERBASE.IBDatabase1.LoginPrompt:= false;
_DM_INTERBASE.IBDatabase1.Params.Add(´user_name=sysdba´);
_DM_INTERBASE.IBDatabase1.Params.Add(´password=masterkey´);
_DM_INTERBASE.IBDatabase1.SQLDialect:= 3;
_DM_INTERBASE.IBDatabase1.DefaultTransaction:= _DM_INTERBASE.IBTransaction1;
_DM_INTERBASE.IBDatabase1.Connected:= false;

_DM_INTERBASE.IBTransaction1.defaultdatabase:= _DM_INTERBASE.IBDatabase1;
_DM_INTERBASE.IBTransaction1.DefaultAction:= TACommitRetaining;
_DM_INTERBASE.IBTransaction1.Active:= false;

With _DM_INTERBASE.IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add (´select gen_id(ENDERECO_GEN,1) from rdb$database´);
open;
Close;
End;


GOSTEI 0
Max.sgj

Max.sgj

29/11/2005

Na segunda clicada da a mensagem de erro...

1: Cannot perform operation--DB is currently open.
1: Não possa executar operação--DB está atualmente aberto.


Veja o codigo completo...

_DM_INTERBASE.IBDatabase1.DatabaseName:= ´C:\MaxProgramador\Pro Projeto\Teste\BD Interbase\BD.GDB´;
_DM_INTERBASE.IBDatabase1.LoginPrompt:= false;
_DM_INTERBASE.IBDatabase1.Params.Add(´user_name=sysdba´);
_DM_INTERBASE.IBDatabase1.Params.Add(´password=masterkey´);
_DM_INTERBASE.IBDatabase1.SQLDialect:= 3;
_DM_INTERBASE.IBDatabase1.DefaultTransaction:= _DM_INTERBASE.IBTransaction1;
_DM_INTERBASE.IBDatabase1.Connected:= false;
_DM_INTERBASE.IBTransaction1.AutoStopAction:= saCommitRetaining;
_DM_INTERBASE.IBTransaction1.defaultdatabase:= _DM_INTERBASE.IBDatabase1;
_DM_INTERBASE.IBTransaction1.DefaultAction:= TACommitRetaining;
_DM_INTERBASE.IBTransaction1.Active:= false;

With _DM_INTERBASE.IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add (´select gen_id(ENDERECO_GEN,1) from rdb$database´);
open;
Close;
End;


GOSTEI 0
POSTAR