Subject | Firebird 1.5.1 SuperServer (debian sarge) crashes on select of stored procedure |
---|---|
Author | vandy899 |
Post date | 2005-01-23T18:43:03Z |
I'm having trouble with some code that worked on Interbase 6.0.
The procedure is as follows:
SET TERM ## ;
CREATE PROCEDURE WEBSERVICE_CLIENT_INCIDENTS_I (
CLIENTID INTEGER,
MACHINENAME VARCHAR(20),
DELIVERYID INTEGER,
LOCATIONID INTEGER,
CONTACT VARCHAR(40),
PHONE VARCHAR(15),
MOBILE VARCHAR(15),
ADDR1 VARCHAR(35),
CITY VARCHAR(15),
STATE VARCHAR(15),
POSTCODE VARCHAR(10)
) RETURNS (
INCIDENTID INTEGER
) AS
DECLARE VARIABLE employeeid integer;
DECLARE VARIABLE machineid integer;
DECLARE VARIABLE location varchar (60);
BEGIN
BEGIN
location =(ADDR1 ||' '||CITY||' '||STATE||' '||POSTCODE);
incidentid = GEN_ID(GEN_SERVICE_INCIDENT, 0)+1;/* DONT INCR */
if (machinename <> '') then
select machineid from CLI_COMPUTERS
where (machine_name=:machinename) and clientid= :clientid
into machineid;
if (machineid is null) then machineid = 0;
select employeeid from cli_shipto S where S.LOCATIONID =
:locationid into employeeid;
END
BEGIN
insert into
service_incidents(incidentid,startedby,clientid,employeeid,machineid,deliveryid,contact,started,
mobile,phone,location)
values(:incidentid,user,:clientid,:EMPLOYEEID,:MACHINEID,:DELIVERYID,:contact,'Now',:MOBILE,
:PHONE,:LOCATION);
END
suspend;
END##
Upon "select * from WEBSERVICE_CLIENT_INCIDENTS_I ('xxx', 'xxx', 'x',
'xxxx', 'xxxx', 'xx', 'xx', 'xxxxx', 'xxx', 'xxx', 'xxx')" (xs are
valid data in app with PHP 4.3.10 (debian) or kinterbasdb (a python
firebird interface). Using EXECUTE PROCEDURE doesn't help either.
However, if I use isql it works fine.
Is it something I did? The log just said "terminated abnormally",
which doesn't tell me much... :(
Cheers,
Michael van der Kolff
The procedure is as follows:
SET TERM ## ;
CREATE PROCEDURE WEBSERVICE_CLIENT_INCIDENTS_I (
CLIENTID INTEGER,
MACHINENAME VARCHAR(20),
DELIVERYID INTEGER,
LOCATIONID INTEGER,
CONTACT VARCHAR(40),
PHONE VARCHAR(15),
MOBILE VARCHAR(15),
ADDR1 VARCHAR(35),
CITY VARCHAR(15),
STATE VARCHAR(15),
POSTCODE VARCHAR(10)
) RETURNS (
INCIDENTID INTEGER
) AS
DECLARE VARIABLE employeeid integer;
DECLARE VARIABLE machineid integer;
DECLARE VARIABLE location varchar (60);
BEGIN
BEGIN
location =(ADDR1 ||' '||CITY||' '||STATE||' '||POSTCODE);
incidentid = GEN_ID(GEN_SERVICE_INCIDENT, 0)+1;/* DONT INCR */
if (machinename <> '') then
select machineid from CLI_COMPUTERS
where (machine_name=:machinename) and clientid= :clientid
into machineid;
if (machineid is null) then machineid = 0;
select employeeid from cli_shipto S where S.LOCATIONID =
:locationid into employeeid;
END
BEGIN
insert into
service_incidents(incidentid,startedby,clientid,employeeid,machineid,deliveryid,contact,started,
mobile,phone,location)
values(:incidentid,user,:clientid,:EMPLOYEEID,:MACHINEID,:DELIVERYID,:contact,'Now',:MOBILE,
:PHONE,:LOCATION);
END
suspend;
END##
Upon "select * from WEBSERVICE_CLIENT_INCIDENTS_I ('xxx', 'xxx', 'x',
'xxxx', 'xxxx', 'xx', 'xx', 'xxxxx', 'xxx', 'xxx', 'xxx')" (xs are
valid data in app with PHP 4.3.10 (debian) or kinterbasdb (a python
firebird interface). Using EXECUTE PROCEDURE doesn't help either.
However, if I use isql it works fine.
Is it something I did? The log just said "terminated abnormally",
which doesn't tell me much... :(
Cheers,
Michael van der Kolff