Subject Re: [firebird-support] Is there a better way of doing this ?
Author Alexandre Benson Smith
Stephen Davey wrote:
> I use this structure to table maintenance processes.
>
> The simple question is , can it be done in a better way ?
>
> Thanks
>
> Stephen
>
> SET TERM ^ ;
> CREATE PROCEDURE BALE_SAVE
> (
> CODE VARCHAR(30),
> FABRICCODE VARCHAR(20),
> FABRICDESCR VARCHAR(60),
> APMCODE VARCHAR(20),
> APMDESCR VARCHAR(60),
> QTYEST NUMERIC(15,2)
> )
> AS
> DECLARE VARIABLE CNT INTEGER ;
> BEGIN
>
> SELECT COUNT(CODE) FROM BALE
> WHERE BALE.CODE = :CODE
> INTO CNT ;
>
> IF (:CNT=0) THEN INSERT INTO BALE(CODE) VALUES (:CODE) ;
>
> UPDATE BALE
> SET
> FABRICCODE = :FABRICCODE,
> FABRICDESCR = :FABRICDESCR,
> APMCODE = :APMCODE,
> APMDESCR = :APMDESCR,
> QTYEST = :QTYEST
> WHERE
> CODE = :CODE ;
>
> END ^
>
>
Yes,

Use EXISTS

IF (not exists (select 1 from BALE where BALE.CODE = :CODE)) THEN INSERT INTO BALE(CODE) VALUES (:CODE) ;

see you !



--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br