I haven't checked this, so I may be totally out of picture with this,
but I suspect that if you enclose your js queries into a transaction,
last_inserted_rowid() will work for inserts inside that transaction
and will be lost when db is close().

Just quick thought, may be wrong.

On Aug 10, 12:43 am, Roman <[email protected]> wrote:
> Hi
>
> What is the difference of using last_insert_row() in a Javascript
> function vs. using it in DB Query Tool?
>
> I have created a table in Google Gears (Sqlite):
>
> db.execute('create table if not exists SPALINKS (link_id int PRIMARY
> KEY, sid1 int, sid2 int, label text, user text, Timestamp int');
>
> When using the Google Gears Database Query Tool (in FF 3.5), INSERT
> with 'last_insert_rowid()' works fine. Inserts from Javascript work
> fine, as long a I don't use 'last_insert_rowid()'. But when using
> 'last_insert_rowid()' it doesn't work anymore:
>
> var sql_stmt = 'INSERT INTO SPALINKS (link_id, sid1, sid2, label,
> user, Timestamp) VALUES (last_insert_rowid(),?,?,?,?,?)';
> var arg_array = [sid1, sid2, label, user, creation_time];
> db.execute(sql_stmt, arg_array);
>
> this results in:
> Error: Database operation failed. ERROR: constraint failed DETAILS:
> constraint failed
>
> Why does SQLite's 'last-insert-rowid' work fine with the DB Tool, but
> not in a SQL statement that is created and executed from inside a
> Javascript function?
>
> Note: this post is the same as the one 
> here:http://stackoverflow.com/questions/1249365/difference-when-using-last...
>
> -Roman

Reply via email to