* Michael Widenius <[EMAIL PROTECTED]> [02/03/26 12:41]:
> Konstantin> class Cursor
> Konstantin> {
> Konstantin> Cursor(MYSQL_RES *res):_res(res) {}
> Konstantin> bool fetch() { return mysql_fetch_row(_res); }
> Konstantin> Row row() { return Row(_res->current_row); }
> Konstantin> ~Cursor() {
> Konstantin> while (!mysql_eof(_res) && mysql_fetch_row(_res))
> Konstantin> ;
> Konstantin> mysql_free_result(_res);
> Konstantin> }
> Konstantin> };
> Konstantin> In this code snippet I have to problems.
> Konstantin> First, that I can't simply return to user current row without
> Konstantin> moving the cursor to next row: there is no C API function like
> Konstantin> mysql_current_row().
> Konstantin> Nevertheless, MYSQL_RES always stores current row in member field
> Konstantin> 'current_row', so I have to use this undocumented feature
> Konstantin> (I can have my own current_row, but why should I?)
> I couple of comments about the above:
>
> - The code above would be safer against the future if you in the class
> cursor stored the value from mysql_fetch_row and returned this in your 'row'
> function, instead of relying on mysql->current_row.
I've realised eventually that You have reasons not to provide access for
mysql_res->current_row, and I do store my own copy of current_row in Cursor.
> In the ~function, you don't have to call mysql_fetch_row().
> mysql_free_result() will do this for you.
But, according to MYSQL C API documentation, 8.4.2,
(http://www.mysql.com/documentation/mysql/bychapter/manual_Clients.html#C_API_function_overview)
I have to do this:
"An advantage of mysql_use_result() is that (...)
(...)
Furthermore, you must retrieve all the rows even if you determine in
mid-retrieval that you've found the information you were looking for."
> Anyway, it would still be nice if you could send your questions to
> [EMAIL PROTECTED] instead of directly to me; I do get +300 emails
> per day and I simple don't have time to answer all questions direct to
> me :(
Sorry && thank you.
--
WBW, Konstantin Osipov
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php