[firebase-br] Alguem me ajuda a compreender porque o EXCEPTION na Trigger Bloquei o meu client delphi uso IBX (
Mário Reis via lista <[email protected]> Fri, 26 Sep 2025 19:23:38 +0000
| Newsgroups | gmane.comp.db.firebase.portuguese |
|---|---|
| Message-ID | <CAF_dzrnWZK0MrFD_f1U7HhdYTfoMx=fPW5LtDrAo+f7o9opdMA@mail.gmail.com> |
CREATE TRIGGER EMPRESAS_BIU FOR EMPRESAS
ACTIVE BEFORE
INSERT OR
UPDATE
POSITION 0
AS
DECLARE VARIABLE SCP4 VARCHAR(10) COLLATE PXW_INTL850;
DECLARE VARIABLE SCP3 VARCHAR(10) COLLATE PXW_INTL850;
DECLARE VARIABLE SCP7 VARCHAR(20) COLLATE PXW_INTL850;
BEGIN
/* 1. Valida=E7=E3o cruzada CP4 + CP3 na tabela CP7DESIG */
IF (NEW.CP4 IS NOT NULL AND NEW.CP3 IS NOT NULL) THEN
BEGIN
IF (NOT EXISTS(
SELECT 1 FROM CP7DESIG
WHERE CP4_ID =3D NEW.CP4 AND CP3_ID =3D NEW.CP3
)) THEN
-- N=E3o se pode usar diretamente: -- EXCEPTION EX_CP7_INVALID; -- "Ca=
nnot
update. (No update query)
Execute Procedure
MSG_ERRO_NO('APL010','C=F3digo Postal ou de Art=E9ria inv=E1lido(s);'); =
--
Versus EXCEPTION EX_CP7_INVALID; bloquei a aplica=E7=E3o delphi xe7 "Cannot
update. (No update query)
-- substituindo pela procedure que no fim executa um exception Exception
Stop S_MSGTXT ; ainda =E0 moda do FB1.5 ou 2.0
END
--- Nota: CREATE EXCEPTION EX_CP7_INVALID 'CP7: C=F3digo Postal ou da Art=
=E9ria
inv=E1lido(s).'; ou que rai est=E1 a acontecer
/* 2. Normaliza=E7=E3o CP4 */
SCP4 =3D TRIM(CAST(COALESCE(NEW.CP4, '') AS VARCHAR(10)));
IF (CHAR_LENGTH(SCP4) > 4) THEN
SCP4 =3D SUBSTRING(SCP4 FROM 1 FOR 4);
SCP4 =3D LPAD(SCP4, 4, '0');
/* 3. Normaliza=E7=E3o CP3 */
SCP3 =3D TRIM(CAST(COALESCE(NEW.CP3, '') AS VARCHAR(10)));
IF (CHAR_LENGTH(SCP3) > 3) THEN
SCP3 =3D SUBSTRING(SCP3 FROM 1 FOR 3);
SCP3 =3D LPAD(SCP3, 3, '0');
/* 4. Concatena=E7=E3o e atribui=E7=E3o */
NEW.CP7_ID =3D SCP4 || SCP3;
END;
H=E1 alguem disponivel para ajudar!? Obrigado
Atentamehte
Com os meus melhores cumprimentos
M=E1rio Agostinho Reis
919262146
Esta mensagem cont=E9m informa=E7=E3o de natureza confidencial e =E9
exclusivamente dirigida ao(s) destinat=E1rio(s) indicado(s). Se, por engano,
receber este email agradecemos que n=E3o o copie nem o reenvie e que nos
notifique do ocorrido atrav=E9s do email de resposta.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.fi=
rebase.com.br/fb/artigo.php?id=3D1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista=
.html