On Thursday 09 April 2009, Jeff wrote: > What is the thinking behind a Result.MoveFirst() and MoveNext() > returning a false if a record is there? > > So, to read round a result set I end up using a Boolean with a double > negative: > > noMoreRows = myResult.MoveFirst() > WHILE NOT noMoreRows > PRINT myResult!id > noMoreRows = myResult.MoveNext() > WEND > > I would have expected the MoveFirst() and MoveNext() return true if a > record found, so I'm wondering why it's that way round. > Or, is there a better loop structure to use so that it reads better? > >
The only logic I see is the way it is done in C/C++ If result returned is 0 means OK else the value other then 0 means the error code for the occured error. -1 means i.e. syntax -2 means i.e. invalid something In C/C++ the IF THEN use a value instead the Basic boolean True/False Symbolic 0 equals to False, other value to True Just in good old practice for Basic a question in IF ... THEN was/is always true. So your way the next code is right IF myResults.MoveNext() then ' ok the movenext was OK ELSE ' oops a error ENDIF For gambas in relation to the MoveXXX() this is reversed by Benoit. It means with false ( equals to 0) there was no error IF myResults.MoveNext() then ' returned not 0 (zero) ' oops a error ELSE ' ok the movenext was OK ' return was 0 (zero) ENDIF So you can use: Const NOERROR as boolean=false IF myResults.MoveNext() = NOERROR THEN ' ok the movenext was OK ' return was 0 (zero) ENDIF Personal I do not like the Gambas way, IMHO the myReult.MoveNext() should return TRUE if succes and FALSE when error occured. I use now the method with NOERRO to get a clean Basic readable code. NOERROR makes more sence then False here. Best regards, Ron_1st ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user