why is the data file locked after writing?

the last printf() result is:
# IN END, ret = 5

according to the "Result Codes":
#define SQLITE_BUSY         5   /* The database file is locked */

It means to the database file is locked? why does it happen after writing?


_____________________________________________________

// basic10.c

#include <stdlib.h>
#include <stdio.h>

#include <sqlite3.h>


int main ( void )
{
    int ret = 0;

    sqlite3 *db = NULL;
    sqlite3_stmt *p_stmt = NULL;

    char *sql_ct = "CREATE TABLE table1 (id INTEGER, m INTEGER, n
VARCHAR(32), t CHAR(1), con VARCHAR(512))";
    char *sql_in = "INSERT INTO table1 VALUES (%d, %d, %Q, %d, %Q)";
    char *sql = NULL;

    ret = sqlite3_open ( "test.db", &db );
    printf ( "# AFTER sqlite3_open,                 ret = %d\n", ret );

    ret = sqlite3_exec ( db, sql_ct, NULL, NULL, NULL );
    printf ( "# AFTER sqlite3_exec, create table,   ret = %d\n", ret );

    sql = sqlite3_mprintf ( sql_in, 0, 0, "goodc", 0, "test -
varcharvarcharvarchar" );
    ret = sqlite3_prepare_v2 ( db, sql, -1, &p_stmt, NULL );
    printf ( "# AFTER sqlite3_prepare_v2,           ret = %d\n", ret );
    ret = sqlite3_step ( p_stmt );
    printf ( "# AFTER sqlite3_step,                 ret = %d\n", ret );
    sqlite3_free ( sql );

    ret = sqlite3_close ( db );
    printf ( "# IN END, ret = %d\n", ret );
    system ( "rm test.db" );

    return 0;
}

_____________________________________________________

[...@lb basic]$ make basic10
[...@lb basic]$ ./basic10 
# AFTER sqlite3_open,                 ret = 0
# AFTER sqlite3_exec, create table,   ret = 0
# AFTER sqlite3_prepare_v2,           ret = 0
# AFTER sqlite3_step,                 ret = 101
# IN END, ret = 5

-- 
View this message in context: 
http://www.nabble.com/why-is-the-data-file-locked-after-writing--tp24071633p24071633.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to