Problemas com Generator

Firebird

13/08/2007

Bom, estou criando uma aplicação em Delphi, usando InterBase...

Estou tendo um problema com o generator, isso porque quando eu adiciono um dado na tabela pela aplicação, sem escrever o campo que deveria ser gerado automaticamente, dá um erro, dizendo que o campo nao pode ser nulo.

Mas na pratica, deveria ser criado automaticamente pelo generator!

Minha tabela:
create table Pacientes(
cod_pac char(5) not null,
nom_pac varchar(40),
sexo_pac char(10),
data_nasc date,
rg_pac varchar(15),
end_pac varchar(40),
bairro_pac varchar(25),
cid_pac varchar(20),
est_pac char(2),
tipo_cons varchar(15),
tel1_pac char(11),
tel2_pac char(11),
email_pac varchar(30),
data_cad date,
primary key(cod_pac)
);


Meu generator:

Create generator gen_cod_pac;


Meu Trigger:

set term*
create trigger cod_pac for pacientes
before insert position 0
as
begin
new.cod_pac = gen_id(gen_cod_pac,1);
end*


>>>Me ajudem por favor, é urgente.

Obrigado!!!


M3talgui

M3talgui

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

13/08/2007

quais os componentes utilizados para acesso?


GOSTEI 0
Fabiano Góes

Fabiano Góes

13/08/2007

para que seja auto incremento o campo deve ser numerico(integer)

o campo [b:a62c423ed6]cod_[/b:a62c423ed6]pac na sua tabela está como [b:a62c423ed6]char(5)[/b:a62c423ed6]

acho que se mudar este campo para integer deve funcionar.


GOSTEI 0
M3talgui

M3talgui

13/08/2007

Bom Emerson, eu usei o IBDataBase, o IBTransaction, IBQuery, IBUpdateSQL e o DataSource....


Fabiano, como eu altero o tipo do campo COD_PAC da tabela sem ter que excluir toda a tabela e fazer denovo?

Obrigado pessoal!!


GOSTEI 0
Sremulador

Sremulador

13/08/2007

Amigo, a propriedade do seu ibquery aspply event deve ser on server


GOSTEI 0
M3talgui

M3talgui

13/08/2007

Como Assim, nao tem essa propriedade na query...

Ah, e tem como eu chamar o generator na query sem ser pela propriedade Generator Field? Tipo, por um codigo!

Obrigado!!!


GOSTEI 0
Sremulador

Sremulador

13/08/2007

A propriedade fica dentro de Generatorfield

SELECT GEN_ID(NOME_GENERATOR_AQUI, 0) FROM rdb$database



GOSTEI 0
M3talgui

M3talgui

13/08/2007

Tem como você me explicar melhor...mais claramente, pq eu nao sou ´expert´ no assunto. rs



Obrigado!


GOSTEI 0
Sremulador

Sremulador

13/08/2007

Você deve colocar em uma query, como outro comando qualquer


GOSTEI 0
POSTAR