Subject RE: [firebird-support] Progress of a Stored Procedure Feedback
Author Chris Donges
Make it selectable and return an integer that you increment before
calling suspend in your main loop and then read from the sp using a
select statement.

It's not perfect as the records seem to come in batches but it can give
you a moving progress bar.

> -----Original Message-----
> From: firebird-support@yahoogroups.com
> [mailto:firebird-support@yahoogroups.com] On Behalf Of robertgilland
> Sent: Tuesday, 27 June 2006 12:04 PM
> To: firebird-support@yahoogroups.com
> Subject: [firebird-support] Progress of a Stored Procedure Feedback
>
> I have this stored procedure that injects data from an
> external table into my database.
> It seems to take forever.
> Is there any way in PSQL I can get this stores procedure to
> give me feedback on its progress?
>
> CREATE PROCEDURE PROC_EXT_FIELD3SALES
> AS
> DECLARE VARIABLE THEFIELD1 VARCHAR(10);
> DECLARE VARIABLE THEFIELD2 TIMESTAMP;
> DECLARE VARIABLE THEFIELD3 VARCHAR(14);
> DECLARE VARIABLE THEFIELD4 FLOAT;
> DECLARE VARIABLE THEFIELD5 FLOAT;
> DECLARE VARIABLE THEFIELD6 FLOAT;
> DECLARE VARIABLE THEFIELD7 FLOAT;
> DECLARE VARIABLE THEFIELD8 FLOAT;
> BEGIN
> FOR SELECT CAST( RTRIM( FIELD1 ) AS VARCHAR(10) ) AS FIELD1
> ,CAST( FIELD2 AS TIMESTAMP ) AS FIELD2
> ,CAST( RTRIM( FIELD3 ) AS VARCHAR(14) ) AS FIELD3
> ,CAST( FIELD4 AS FLOAT ) AS FIELD4
> ,CAST( FIELD5 AS FLOAT ) AS FIELD5
> ,CAST( FIELD6 AS FLOAT ) AS FIELD6
> ,CAST( FIELD7 AS FLOAT ) AS FIELD7
> ,CAST( FIELD8 AS FLOAT ) AS FIELD8
> FROM EXT_FIELD3SALES
> INTO :THEFIELD1
> ,:THEFIELD2
> ,:THEFIELD3
> ,:THEFIELD4
> ,:THEFIELD5
> ,:THEFIELD6
> ,:THEFIELD7
> ,:THEFIELD8
> DO
> BEGIN
> INSERT INTO FIELD3SALES
> (FIELD1
> ,FIELD2
> ,FIELD3
> ,FIELD4
> ,FIELD5
> ,FIELD6
> ,FIELD7
> ,FIELD8
> )
> VALUES
> (:THEFIELD1
> ,:THEFIELD2
> ,:THEFIELD3
> ,:THEFIELD4
> ,:THEFIELD5
> ,:THEFIELD6
> ,:THEFIELD7
> ,:THEFIELD8
> );
> WHEN SQLCODE -803 DO
> BEGIN
> UPDATE FIELD3SALES
> SET FIELD4 = :THEFIELD4
> ,FIELD5 = :THEFIELD5
> ,FIELD6 = :THEFIELD6
> ,FIELD7 = :THEFIELD7
> ,FIELD8 = :THEFIELD8
> WHERE (FIELD1 = :THEFIELD1 )
> AND (FIELD2 = :THEFIELD2 )
> AND (FIELD3 = :THEFIELD3 )
> ;
> END
> END
> END;
>
> Regards,
>
> Robert.
>
>
>
>
>
>
> ------------------------ Yahoo! Groups Sponsor
> --------------------~--> Something is new at Yahoo! Groups.
> Check out the enhanced email design.
> http://us.click.yahoo.com/SISQkA/gOaOAA/yQLSAA/67folB/TM
> --------------------------------------------------------------
> ------~->
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://www.firebirdsql.org and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>