I am executing a mysql script through My Query Browser windows. & I am
getting this error message.
'Unknown system variable done'.
The mysql script is as below.
DROP PROCEDURE IF EXISTS GMSPROVIDER$$
CREATE PROCEDURE GMSPROVIDER()
BEGIN
DECLARE PROVIDER_ENCODER CHAR(200);
DECLARE PROVIDER_SEQ INT;
DECLARE a CHAR(16);
DECLARE b INT;
DECLARE CUR1 CURSOR FOR SELECT service_id FROM
SSSDB_CC.tbl_app_gms_provider_binding where
provider_seq_id=PROVIDER_SEQ;
DECLARE CUR2 CURSOR FOR SELECT capability_seq_id FROM
SSSDB_CC.tbl_capability_names where service_id=a;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
SELECT provider_encoder_class into PROVIDER_ENCODER from
SSSDB_CC.tbl_gms_provider_master where provider_name ='MMI';
SELECT distinct provider_seq_id into PROVIDER_SEQ from
SSSDB_CC.tbl_gms_provider_master where provider_name ='MMI';
OPEN CUR1;
WHILE NOT done DO
fetch CUR1 into a;
OPEN CUR2;
WHILE NOT done DO
fetch CUR2 into b;
SELECT capability_seq_id from tbl_provider_capability_values
where capability_seq_id = b and provider_seq_id = PROVIDER_SEQ;
END WHILE;
CLOSE CUR2;
END WHILE;
CLOSE CUR1;
IF(PROVIDER_ENCODER='com.sirf.studio.server.protocol.mapmyindia.encoder.velocity.MDEncoder')
THEN
SELECT 'MMI_EXISTS';
SELECT service_id FROM tbl_app_gms_provider_binding where
provider_seq_id = PROVIDER_SEQ;
SELECT capability_value FROM tbl_provider_capability_values where
provider_seq_id = PROVIDER_SEQ;
SELECT link_url FROM tbl_provider_link_master where link_name
='MMDLINK' ;
ELSE
SELECT 'MMD_DOESNOT_EXISTS';
END IF;
SELECT provider_encoder_class into PROVIDER_ENCODER from
SSSDB_CC.tbl_gms_provider_master where provider_name ='Autodesk';
IF(PROVIDER_ENCODER='com.sirf.studio.server.protocol.autodesk.encoder.velocity.AdEncoder')
THEN
SELECT 'Ad_EXISTS';
ELSE
SELECT 'Ad_DOESNOT_EXISTS';
END IF;
END
CALL GMSPROVIDER()$$
DELIMITER;
Please let me know as to where I am going wrong. Any help will be
appreciated.
Thanks,
Dipesh
Where did you declare DONE?
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstu...@attglobal.net
==================
Hi Jerry,
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
I declare it in the 12th line. Please let me know, as to where is the
issue.?
Thanks,
Dipesh
That's declaring a handler, and in that handler setting done equal to
one. But you've never declared done itself.
What's the value of done before your handler is called?
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstu...@attglobal.net
==================