[Lazarus] SQLite Oddity with simple Select clause

Luiz Americo Pereira Camara luizmed at oi.com.br
Wed Jul 20 03:34:08 CEST 2011


On 19/7/2011 03:55, Tommi Prami wrote:
> Hello,
>
> I have Day or two old SVN (Trunk) Lazarus with FPC 2.4.4
>
> I have simple select with simple where clause. Nothing fancy.
>
> If I run exact same SQL with SQLite Expert Personal I get the rows as 
> expected.
>
> I looked my code, and did some debugging into the SQLite code, and 
> this happened.
>
> 1. I call the .RefetchData;
>
> Then I Step into the  Sqlite3DS unit TSqlite3Dataset.BuildLinkedList 
> method.
>
> It successfully calls the sqlite3_prepare() etc...
>  This code seems odd to me, but some parts of my App works perfectly 
> so maybe this is just something that it does not seem to be :
>
> ...
>   FRecordCount := 0;
>   ColumnCount := sqlite3_column_count(vm);
>   FRowCount := ColumnCount;
> ...
>
> Then comes the :
>   FReturnCode := sqlite3_step(vm);
>   while FReturnCode = SQLITE_ROW do
>   begin
>
> loop, Which I think would fetch the Actual data.
>
> And first call (Outside the Loop returns ReturnCode 101 
> (SQLITE_DONEhttp://www.sqlite.org/c3ref/c_abort.html )...
>
> What in earth is going on... Any ideas What might be wrong in here? In 
> mY Code or the SqLite Code.

I dont know since you did not show your code. But i would bet is in your 
code.

Refetch data is for statement already executed.

Try calling Open.

Also please ready the tutorials: 
http://sqlite4fpc.yolasite.com/documentation.php

Luiz





More information about the Lazarus mailing list