O q está errado ??

Firebird

01/07/2004

a tabela:
//========================================//
//========================================//
CREATE TABLE ´PLAY´
(
´CODIGO´INTEGER NOT NULL,
´LOJA´CHAR(6) NOT NULL,
´NOME´VARCHAR(50) NOT NULL,
CONSTRAINT ´PLAY_PK´ PRIMARY KEY (´CODIGO´, ´LOJA´)
);
//========================================//
//========================================//
a triger:
//========================================//
//========================================//
SET TERM ^;
create trigger ´TESTE´ for ´PLAY´
active before insert position 0
as
declare variable autoinc integer;
declare variable VLOJA VARCHAR;
begin
select max(´codigo´) from ´PLAY´ Where LOJA = VLOJA into autoinc;
if (autoinc is null) then
autoinc = 0;
autoinc = autoinc + 1;
new.´codigo´ = autoinc;
end
^
SET TERM;^
//========================================//
//========================================//


Wiltefran

Wiltefran

Curtidas 0

Respostas

Dorivansousa

Dorivansousa

01/07/2004

de onde ta vindo o valor da variavel VLOJA?


GOSTEI 0
Afarias

Afarias

01/07/2004

fica mais fácil se vc disser o erro do que se tivermos q adivinhar, blz?! :?

como vc usa aspas para definir os nomes dos objetos, então esteja atento a sempre informar esses nomes corretamente, por ex::

´CODIGO´ é diferente de ´codigo´

no mais, acho q o código q vc deseja (e q não recomendo) é::

select max("CODIGO") from "PLAY" 
where "LOJA" = new."LOJA" into :autoinc; 

if (autoinc is null) then 
  autoinc = 0; 

autoinc = autoinc + 1; 
new."CODIGO" = autoinc; 



T+


GOSTEI 0
POSTAR