ODBiC Discussion Board


weird WHILE statement behaviour

by Louis van Eijk, May 4, 2007 00:07

I was working on a FUNCTION that would give me the next date of a workingday. I couldn't find any standard functions for this in MySQL, so I wrote one myself.

The problem with the following code is that the WHILE statement doesn't read the result from the SQL command within the WHILE statement.

DEFAULT datum1 = $today$;
SETOPTION DATE = 'dmy';

SET workingdays = 'Monday Tuesday Wednesday Thursday Friday'; SET date2 = $dateAdd($date1$, 1 , 'yyyy-mm-dd');

SQL SELECT DAYNAME('$date2$') as weekday; %>First: $weekday$<%

SETOPTION DATE = 'ymd';

WHILE not $match($workingdays$,$weekday$); SET date2 = $dateAdd($date2$, 1 , 'yyyy-mm-dd'); SQL SELECT DAYNAME('$date2$') as weekday; ENDWHILE;

SQL SELECT DAYNAME('$date2$') as weekday; %> $date2$ $weekday$

In this example the "weekday" stays the same within the WHILE statement. But it should be set again by the SQL statement.

A workaround for this problem is to SET a new variable in the WHILE statement. So after the SQL command I use

      SQL SELECT DAYNAME('$date2$') as tempday;
      SET weekday = $tempday$;

So the question is why doesnt the WHILE statement read the new value set by the SQL statement.

gtx.

Louis



Replies:


Post Your Reply:

Name   
E-mail  optional
Topic  
Message:

HTTP Link: 
Link text: 

          


Copyright ©1997-2003, Roger Harris. All rights reserved.