Re: ibase_fetch_row
| From: | (Mauricio Junqueira) | Date: | Sat, 04 Nov 2000 17:06:17 +0000 |
| Subject: | Re: ibase_fetch_row | ||
| References: | 1 2 3 4 5 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-4215@lists.php.net to get a copy of this message | ||
>your stored procedure just do not return a result.
>Do you call SUSPEND; in the stored procedure to delay the
>output until the next call of ibase_fetch_row() ?
I'm not calling SUSPEND at the end of procedure.. I'm going to do it
right now...
The store procedure:
SET AUTODDL OFF;
SET TERM ^ ;
/* PROCEDURE NEWLOGIN
DATA:01-NOV-2000
AUTH:MAU
DESC:UTILIZADA PARA LOGAR O USUARIO EM login2.php
*/
ALTER PROCEDURE NEWLOGIN (
USERNAME VARCHAR(60),
PASSWD CHAR(4),
IPADDRESS VARCHAR(15))
RETURNS (
LOGINID INTEGER,
USERID INTEGER)
AS
DECLARE VARIABLE senha CHAR(4);
DECLARE VARIABLE texto VARCHAR(80);
BEGIN
LOGINID =-1; /* -1: USUARIO INEXISTENTE, 0: SENHA INCORRETA */
USERID =-1;
DELETE FROM LOGINID
WHERE LASTACCESS < (CAST ('now' AS TIMESTAMP) - 1/1440);
IF (USERNAME IS NULL OR PASSWD IS NULL OR IPADDRESS IS NULL)
THEN EXIT;
SELECT CODE, PASSWD FROM EMPLOYEE WHERE NAME = :USERNAME
INTO :USERID, :senha;
IF (USERID is NULL OR USERID =-1) THEN EXIT;
IF (senha != PASSWD) THEN
BEGIN
texto ='INVALID PASSWORD FOR USER ';
INSERT INTO SYSMSG (SYSMSG) VALUES (:texto);
LOGINID = 0;
EXIT;
END
EXECUTE PROCEDURE GET_LOGINID RETURNING_VALUES (:LOGINID);
INSERT INTO LOGINID (EYEE, LOGINID, IPADDRESS)
VALUES (:USERID, :LOGINID, :IPADDRESS);
SUSPEND; // I include this here now..
END
^
SET TERM ; ^
COMMIT;