Connecting Tech Pros Worldwide Help | Site Map

Help with stored procedure

Newbie
 
Join Date: Feb 2008
Posts: 13
#1: Sep 13 '09
Hi there, iam trying to use Firebird with this procedure:

Parameters:

NAAM VARCHAR(120)
VWDID INTEGER
QUOTE DECIMAL (9,3)
QUOTEDATE TIMESTAMP
QUOTETYPE VARCHAR(20)

Expand|Select|Wrap|Line Numbers
  1. BEGIN
  2.   /* Procedure text */
  3.   DECLARE TYPE_ID int
  4.   /* Checken of de quote al bekend is */
  5.   IF(COUNT(QUOTE_VWDID) FROM TBL_QUOTE WHERE QUOTE_VWDID = VWDID) < 1
  6.   BEGIN
  7.        /* Hij is nog niet bekend */
  8.        INSERT INTO TBL_QUOTE (QUOTE_VWDID, QUOTE_NAAM) VALUES (VWDID, NAAM);
  9.   END
  10.   /* Checken of de quotetype al bestaat */
  11.   IF(COUNT(QUOTE_TYPE_NAAM) FROM TBL_QUOTE_TYPE WHERE QUOTE_TYPE_NAAM = NAAM) < 1
  12.   BEGIN
  13.        /* Quote type is nog niet bekend */
  14.        INSERT INTO TBL_QUOTE_TYPE (QUOTE_TYPE_NAAM) VALUES (QUOTETYPE);
  15.   END
  16.   /* Zetten van de type_id */
  17.   SET TYPE_ID = SELECT QUOTE_TYPE_ID FROM TBL_QUOTE_TYPE WHERE QUOTE_TYPE_NAAM = NAAM;
  18.  
  19.   INSERT INTO TBL_QUOTE_LOG (QUOTE_LOG_TIMESTAMP, QUOTE_LOG_QUOTE, QUOTE_VWDID, QUOTE_TYPE_ID)
  20.   VALUES (QUOTEDATE, QUOTE, VWIDID, TYPE_ID);
  21. END
  22.  
I have no idea how to get this stored procedure to work with Firebird

Any help is much appriciated! =)
Newbie
 
Join Date: Feb 2008
Posts: 13
#2: Sep 14 '09

re: Help with stored procedure


I have managed to work a bit on the procedure, i currently have this error:

Engine Error (code = 335544569):
Dynamic SQL Error.
SQL error code = -206.
Subselect illegal in this context.

SQL Error (code = -206):

Any Idea? thx =)

Expand|Select|Wrap|Line Numbers
  1. SET TERM ^ ;
  2.  
  3. ALTER PROCEDURE PRC_QUOTE_LOG_ADD (
  4.  NAAM      VARCHAR(120),
  5.  VWDID     INTEGER,
  6.  QUOTE     DECIMAL(9,3),
  7.  QUOTEDATE TIMESTAMP,
  8.  QUOTETYPE VARCHAR(20))
  9. AS 
  10. DECLARE VARIABLE TYPE_ID INTEGER;
  11. BEGIN
  12.   /* Procedure text */
  13.   /* Checken of de quote al bekend is */
  14.   IF((SELECT COUNT(QUOTE_VWDID) FROM TBL_QUOTE WHERE QUOTE_VWDID = VWDID) < 1)
  15.   THEN
  16.   BEGIN
  17.        /* Hij is nog niet bekend */
  18.        INSERT INTO TBL_QUOTE (QUOTE_VWDID, QUOTE_NAAM) VALUES (VWDID, NAAM);
  19.   END
  20.   /* Checken of de quotetype al bestaat */
  21.   IF((SELECT COUNT(QUOTE_TYPE_NAAM) FROM TBL_QUOTE_TYPE WHERE QUOTE_TYPE_NAAM = NAAM) < 1)
  22.   THEN
  23.   BEGIN
  24.        /* Quote type is nog niet bekend */
  25.        INSERT INTO TBL_QUOTE_TYPE (QUOTE_TYPE_NAAM) VALUES (QUOTETYPE);
  26.   END
  27.  
  28.   /* Zetten van de type_id */
  29.   TYPEID = (SELECT QUOTE_TYPE_ID FROM TBL_QUOTE_TYPE WHERE QUOTE_TYPE_NAAM = NAAM);
  30.  
  31.   INSERT INTO TBL_QUOTE_LOG (QUOTE_LOG_TIMESTAMP, QUOTE_LOG_QUOTE, QUOTE_VWDID, QUOTE_TYPE_ID)
  32.   VALUES (QUOTEDATE, QUOTE, VWIDID, TYPE_ID);
  33. END;^
  34.  
  35. SET TERM ; ^
  36.  
Reply