On Jun 27, 2009, at 2:47 PM, chandan wrote:

> The code snippet is shown below:
>
> / 
> **************************************************************************************************/
> #include <stdio.h>
> #include <stdlib.h>
> #include <stdint.h>
> #include <string.h>
> #include <sqlite3.h>
>
> const char *create_and_insert = "create table some_tbl (id int primary
> key, version text check (version in (\"1.0\")));"
>    "insert into some_tbl (id) values (1);";
> const char *update_sql = "update some_tbl set version = ? where id  
> = ?";
>
> int32_t main(int32_t argc, char *argv[])
> {
>    sqlite3 *db;
>    char *err_msg;
>    sqlite3_stmt *stmt;
>    int32_t ret;
>
>    if (argc != 2) {
>        fprintf(stderr, "Usage: %s <database name>.\n", argv[0]);
>        goto out1;
>    }
>
>    db = NULL;
>    ret = sqlite3_open(argv[1], &db);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "Unable to open database.\n");
>        goto out1;
>    }
>
>    err_msg = NULL;
>    ret = sqlite3_exec(db, create_and_insert, NULL, NULL, &err_msg);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_exec: %s.\n", err_msg);
>        sqlite3_free(err_msg);
>    }
>
>    stmt = NULL;
>    ret = sqlite3_prepare_v2(db, update_sql, strlen(update_sql) + 1,
>                 &stmt, NULL);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_stmt: %s", sqlite3_errmsg(db));
>        goto out2;
>    }
>
>    ret = sqlite3_bind_text(stmt, 1, "1.1", strlen("1.1") + 1,
>                SQLITE_TRANSIENT);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_bind_text: %s",
>            sqlite3_errmsg(db));
>        goto out3;
>    }
>
>    ret = sqlite3_bind_int(stmt, 2, 0);

The 0 above should be 1. Also, you don't need to add one to the
return of strlen().

Dan.




>
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_bind_int: %s",
>            sqlite3_errmsg(db));
>        goto out3;
>    }
>
>    ret = sqlite3_step(stmt);
>    if (ret != SQLITE_DONE) {
>        fprintf(stderr, "sqlite3_step: %s",
>            sqlite3_errmsg(db));
>        goto out3;
>    }
>
>    ret = sqlite3_finalize(stmt);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_finalize: %s",
>            sqlite3_errmsg(db));
>    }
>
>    ret = sqlite3_close(db);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "Unable to close the database.\n");
>    }
>
>    exit(0);
>
> out3:
>    ret = sqlite3_finalize(stmt);
>    if (ret != SQLITE_OK) {
>        fprintf(stderr, "sqlite3_finalize: %s",
>            sqlite3_errmsg(db));
>    }
> out2:
>    ret = sqlite3_close(db);
> out1:
>    exit(1);
> }
> / 
> ********************************************************************************************/
>
>
> Roger Binns wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> chandan wrote:
>>
>>>   I have attached the C program along this mail.
>>>
>>
>> This mailing list strips all attachments, so we can't see your  
>> code :-)
>>
>>
>>> Am i doing anything wrong in the program?
>>>
>>
>> Yes.  SQLite does fundamentally work.  We'd have noticed by now if a
>> simple update didn't work :-)
>>
>> You should look over the programming documentation on the web site
>> including sample programs again.
>>
>> Roger
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.9 (GNU/Linux)
>>
>> iEYEARECAAYFAkpF0O4ACgkQmOOfHg372QQlrQCffy0JJqpxSaDR8pg9B903eofi
>> DYYAnR/gOPJLgpdC1c0CLwa0rA7IOJG0
>> =MP0E
>> -----END PGP SIGNATURE-----
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>>
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

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

Reply via email to