Fórum O q está errado ?? #45274

01/07/2004

0

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

Responder

Posts

02/07/2004

Dorivansousa

de onde ta vindo o valor da variavel VLOJA?


Responder

Gostei + 0

03/07/2004

Afarias

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+


Responder

Gostei + 0

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

Aceitar