Can someone tell me what's wrong with this. I've been trying to see if I could port an application from MySQL, but it's quickly becoming too time intensive to implement a LIMIT function in SAPDB. This stored procedure attempts to, inefficiently, implement a LIMIT function, but I get the following error:

---- Error -------------------------------
Auto Commit: On, SQL Mode: Internal, Isolation Level: Committed
Syntax error or access violation;-3014 POS(80) Invalid end of SQL statement.
call MSGHEADERLIMIT(' where MSGNO=2 ', 5, 10)


Here is the stored procedure:

CREATE DBPROC MSGHEADERLIMIT(
IN WHERE_CLAUSE char(255),
IN START_POS INTEGER,
IN NUM_FIELDS INTEGER)
RETURNS CURSOR AS
 VAR END_POS Integer;
           stmt varchar(1000);
            SET END_POS = NUM_FIELDS + START_POS;


IF FALSE
THEN CREATE TABLE TEMP.resulttable AS SELECT * FROM DBA.MSGHEADERS;
SET stmt = 'CREATE TABLE TEMP.resulttable AS SELECT * FROM DBA.MSGHEADERS ' || WHERE_CLAUSE || ' ORDER BY INTERNALDATE ';
execute stmt;
stop($rc, $errmsg);


/* Retrieve all rows up to the end position */
DECLARE C4 CURSOR FOR SELECT * FROM TEMP.resulttable WHERE ROWNO<= :END_POS FOR REUSE;


/* Turn it over so we can count back from the end */
DECLARE C5 CURSOR FOR SELECT * FROM DBA.C4 ORDER BY INTERNALDATE DESC FOR REUSE;


/* Select num_fields from the end */
DECLARE :$cursor CURSOR FOR SELECT * FROM DBA.C5 WHERE ROWNO<=:NUM_FIELDS;


 drop table TEMP.resulttable;
 //
call MSGHEADERLIMIT(' where MSGNO=2 ', 5, 10)

--
Joel Griffiths - Software Engineer - Go Daddy Software
480-505-8800 #371 - 480-688-5343 (Cell)
14455 North Hayden Road, Suite 226, Scottsdale, AZ 85260


-- MaxDB Discussion Mailing List For list archives: http://lists.mysql.com/maxdb To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to