You have to do all the binds together, THEN step.  This works for me.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sqlite3.h"

int main()
{
  sqlite3 *db;
  sqlite3_stmt *stmt;
  int status;
  char *create = "create table 
ONTTable(slotId,ponChannelId,onuType,onuId,adminStatus);";
        char *query = "insert into ONTTable 
(slotId,ponChannelId,onuType,onuId,adminStatus) values (?1,?2,?3,?4,?5);";

  
status=sqlite3_open_v2("test.db",&db,SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE,NULL);
  if (status != SQLITE_OK)  {
    printf("open error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  sqlite3_exec(db,create,NULL,NULL,NULL);
  status=sqlite3_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
  if (status != SQLITE_OK) {
    printf("prepare error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }

  status=sqlite3_bind_int(stmt,1,1);
  if (status != SQLITE_OK) {
    printf("bind1 error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  status=sqlite3_bind_int(stmt,2,2);
  if (status != SQLITE_OK) {
    printf("bind2 error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  status=sqlite3_bind_int(stmt,3,3);
  if (status != SQLITE_OK) {
    printf("bind3 error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  status=sqlite3_bind_int(stmt,4,4);
  if (status != SQLITE_OK) {
    printf("bind4 error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  status=sqlite3_bind_int(stmt,5,5);
  if (status != SQLITE_OK) {
    printf("bind5 error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }

  status=sqlite3_step(stmt);
  if (status != SQLITE_DONE) {
    printf("step error:%s\n",sqlite3_errmsg(db));
    exit(1);
  }
  return 0;
}



Michael D. Black

Senior Scientist

Advanced Analytics Directorate

Advanced GEOINT Solutions Operating Unit

Northrop Grumman Information Systems

________________________________
From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on 
behalf of bhaskarReddy [uni...@gmail.com]
Sent: Monday, January 16, 2012 7:46 AM
To: sqlite-users@sqlite.org
Subject: EXT :[sqlite] sqlite3_bind. error as library routine called out of 
sequence.


Hi Friends,

      When i tried,
 query = "insert into ONTTable
(slotId,ponChannelId,onuType,onuId,adminStatus) values (?1,?2,?3,?4,?5);";
then binding each parameter.....

//sqlite3_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
sqlite3_bind_int(stmt,1,ontTable -> slotId);
sqlite3_step(stmt,DONE);

//sqlite3_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
sqlite3_bind_int(stmt,1,ontTable -> ponChannelId);
sqlite3_step(stmt,DONE);

//sqlite_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
sqlite3_bind_int(stmt,1,ontTable -> ontType);
sqlite3_step(stmt,DONE);

//sqlite3_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
sqlite3_bind_int(stmt,1,ontTable -> onuId);
sqlite3_step(stmt,DONE);

//sqlite3_bind_prepare_v2(db,query,strlen(query)+1, &stmt, NULL);
sqlite3_bind_int(stmt,1,ontTable -> adminStatus);

I am getting the following error.
sqilte3_bind_int(stmt,1,ontTable -> ponChannelId) failed with status 21:
library routine called out of sequence.



Regards,
Bhaskar Reddy.

--
View this message in context: 
http://old.nabble.com/sqlite3_bind.-error-as-library-routine-called-out-of-sequence.-tp33147572p33147572.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
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to