BTW, I've ran the bunch of tests we have for SQLite (about 110) and they are
still working :).  So I hope this change does not introduce any strange
behavior.

On Tue, Aug 23, 2011 at 12:07 PM, Guillermo Polito <
guillermopol...@gmail.com> wrote:

> I've managed to fix this adding these two lines :)
>
> static int sqlite3_odbx_row_fetch( odbx_result_t* result )
> {
>     DEBUGLOG( result->handle->log.write( &(result->handle->log), 1,
> "sqlite3_odbx_row_fetch() called" ); )
>
>     struct sconn* aux = (struct sconn*) result->handle->aux;
>
>     if( aux == NULL ) { return -ODBX_ERR_PARAM; }
>
>     int err = aux->err;
>
>     if( err != -1 ) { aux->err = -1; }   // use original error code the
> first time
>     else { err = sqlite3_step( (sqlite3_stmt*) result->generic ); }
>
>     switch( err )
>     {
>         case SQLITE_ROW:
>             return ODBX_ROW_NEXT;
>         case SQLITE_DONE:
>         case SQLITE_OK:
>         case SQLITE_MISUSE:   // Return DONE if function called more often
> afterwards
>  >>           sqlite3_finalize( (sqlite3_stmt*) result->generic );
>  >>           result->generic = NULL;
>             return ODBX_ROW_DONE;
>     }
>
>     return -ODBX_ERR_BACKEND;
> }
>
> But I don't know if they are correct.  Maybe they are bit meant to be there
> and we should manage it on our side, hehe.
>
> Guille
>
>
> On Tue, Aug 23, 2011 at 7:37 AM, Guillermo Polito <
> guillermopol...@gmail.com> wrote:
>
>> Actually, It answers the ODBX_ROW_DONE, but afterwards, if we continue
>> asking for more rows, we get ODBX_ROW_NEXT again.
>>
>> Thanks!
>>
>>
>> On Tue, Aug 23, 2011 at 7:25 AM, Mariano Martinez Peck <
>> marianop...@gmail.com> wrote:
>>
>>> Hi Norbert. We found a problem with Sqlie and I wonder if it is our fault
>>> or not.
>>> Imagine we send a query and we iterate the resultset with odbx_row_fetch
>>>
>>> Now...imagine the query answered 3 rows. We invoke odbx_row_fetch times
>>> and we correctly get the rows. Now...the problem is that it does NOT answers
>>> ODBX_ROW_DONE ("0") but instead  ODBX_ROW_NEXT ("1") . Hence, we assume we
>>> can continue asking rows. And in fact, if we continue invoking that function
>>> 3 more times, we get AGAIN those 3 rows...
>>>
>>> So...shouldn't this answer ODBX_ROW_DONE after the 3 times I invoked
>>> odbx_row_fetch ?
>>>
>>> Thanks a lot in advance
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>>
>>
>
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
libopendbx-devel mailing list
libopendbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libopendbx-devel
http://www.linuxnetworks.de/doc/index.php/OpenDBX

Reply via email to