> In my application, I call upon the method sqlite3_exec(). This
> method returns the results of request SQL in a function:
> callback(int argc, char **argv, char **azColName).
> This function "callback" displays then the results:
> 
> int i;
> for(i=0; i<argc; i++)
> {
>         printf("%s = %s\n", azColName[i], (argv[i] != NULL)? argv[i] : 
> "NULL");
> }
> 
> Can I be sure that the results will be always received by the
> callback in the order of creation of the table?

No. The order records are returned is not defined unless you specify it:

select Name, surname from user order by Name;

or create a field used for ordering:

create table user ( Id integer,
name char(50), surname char(50) );

insert into user( id, name ) values( 2, 'two' );
insert into user( id, name ) values( 1, 'one' );

select * from user order by id;


> 
> For example, if I make "SELECT * FROM USER;"
> and that the table USER is created with: CREATE TABLE USER (NAME
> char(50) , SURNAME char(50));
> the callback will it always receive the "NAME" then the
> "SURNAME"?

I wouldn't do that. To ensure it works right do this instead:

SELECT Name, SurName FROM USER

Reply via email to