[firebase-br] A m/ trigguer que deverá fornecer o prximo N.º de Linha s/gaps no meio, mas não dispara dá erro primeiro em new.linha
Mário Reis
mariodosreyx em gmail.com
Sexta Dezembro 2 16:00:59 -03 2022
Desculpem-me com um "D" bem grande:
IF (:NEW_LINHA IS NULL) THEN
NEW_LINHA = 1 ; -- deveria ser NEW (*PONTO*)LINHA
ELSE
NEW*.*LINHA =:NEW_LINHA + 1;
Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146
Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.
Mário Reis <mariodosreyx em gmail.com> escreveu no dia sexta, 2/12/2022 à(s)
17:44:
> Boa tarde companheiros,
>
> Tenho este mesmo código rodando em dezenas de ouiyras situações. Aqui
> deu.me uma branca devo estar a esquecer algo muito importante:
> CREATE TABLE LLIVRODEPONTO (
> LINHA SMALLINT NOT NULL,
> IDUSER SMALLINT NOT NULL,
> USLOGIN VARCHAR(10) CHARACTER SET WIN1252 NOT NULL COLLATE PXW_INTL850,
> MOVIMENTO CHAR(1) CHARACTER SET WIN1252 COLLATE PXW_INTL850,
> DESCRITIVO VARCHAR(35) CHARACTER SET WIN1252 COLLATE PXW_INTL850,
> DTHRSVR TIMESTAMP,
> DTHRCLI TIMESTAMP);
>
>
> ALTER TABLE LLIVRODEPONTO ADD CONSTRAINT PK_LLIVRODEPONTO PRIMARY KEY
> (LINHA,IDUSER,USLOGIN);
>
>
> SET TERM ^ ;
>
> CREATE TRIGGER BI_LLIVRODEPONTO_LINHA FOR LLIVRODEPONTO
> ACTIVE BEFORE
> INSERT
> POSITION 0
> AS
> DECLARE VARIABLE NEW_ID_USER TYPE OF COLUMN LLIVRODEPONTO.IDUSER;
> DECLARE VARIABLE NEW_LINHA TYPE OF COLUMN LLIVRODEPONTO.LINHA;
> BEGIN
> -- IF (NEW.LINHA IS NULL) THEN
> -- NEW.LINHA = GEN_ID(LLIVRODEPONTO_LINHA_GEN1, 1);
> /* Procedure body */
> NEW_ID_USER=NEW.IDUSER;
> IF (NEW.LINHA IS NULL) THEN
> BEGIN
>
> SELECT MAX(Ll.LINHA) FROM LLIVRODEPONTO Ll
> WHERE Ll.IDUSER =:NEW_ID_USER
> AND Ll.USLOGIN=CURRENT_USER
> AND Ll.DTHRSVR=CURRENT_TIMESTAMP
> INTO :NEW_LINHA;
>
> IF (:NEW_LINHA IS NULL) THEN
> NEW_LINHA = 1 ;
> ELSE
> NEW.LINHA =:NEW_LINHA + 1;
>
> END
>
>
>
>
>
> END^
>
> SET TERM ; ^
> Onde me perdi eu e em quê? Costuma funcionar sempre que não posso ter
> falhas na numeração Faturação por exemplo!?
> Estou a ficar maluco!
> Alguém pode ajudar-me? Obrigado
> Com os meus melhores cumprimentos
> Mário Agostinho Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
>
Mais detalhes sobre a lista de discussão lista