GARANTIR DESCONTO

Fórum Problemas com Generator #58682

13/08/2007

0

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

Responder

Posts

13/08/2007

Emerson Nascimento

quais os componentes utilizados para acesso?


Responder

Gostei + 0

14/08/2007

Fabiano Góes

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.


Responder

Gostei + 0

14/08/2007

M3talgui

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!!


Responder

Gostei + 0

15/08/2007

Sremulador

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


Responder

Gostei + 0

15/08/2007

M3talgui

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!!!


Responder

Gostei + 0

15/08/2007

Sremulador

A propriedade fica dentro de Generatorfield

SELECT GEN_ID(NOME_GENERATOR_AQUI, 0) FROM rdb$database



Responder

Gostei + 0

15/08/2007

M3talgui

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



Obrigado!


Responder

Gostei + 0

16/08/2007

Sremulador

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


Responder

Gostei + 0

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

Aceitar