简体   繁体   English

SQLite3插入错误C ++

[英]Sqlite3 insert error C++

I am inserting to sqlite3 table Company where i used following schema to create table 我要插入sqlite3表公司,我在其中使用以下架构创建表

sql = "CREATE TABLE COMPANY("  \
         "NAME TEXT PRIMARY KEY     NOT NULL,"
         "ADDRESS           TEXT    NOT NULL;";

I am able to create table, but when I use following command to insert using sqlite3_bind_text, I am getting following problem as 我能够创建表,但是当我使用以下命令使用sqlite3_bind_text插入时,出现以下问题

const char* sql = "INSERT INTO COMPANY(NAME, ADDRESS) VALUES (?, ?)"
sqlite3_stmt *stmt;
int rc = sqlite3_exec(db, sql, callback, &stmt, &zErrMsg);
if(rc == SQLITE_OK ) {
    sqlite3_bind_text(stmt, 1, "abc", 3, 0);
    sqlite3_bind_text(stmt, 2, "def", 3, 0);
    // commit
    sqlite3_step(stmt) ;
    sqlite3_finalize(stmt) ;
}

I am getting error like, SQL ERROR: COMPANY.NAME may not be NULL 我收到类似SQL错误的错误:COMPANY.NAME不能为NULL

Does sqlite3 bind text not work when column is not null? 当column不为null时,sqlite3绑定文本不起作用吗?

const char* sql = "INSERT INTO COMPANY(NAME, ADDRESS) VALUES (?, ?)"
sqlite3_stmt *stmt;
char *pszTest ;
int rc = sqlite3_prepare(db, sql, strlen(sql), &stmt, &pszTest) ;
if(rc == SQLITE_OK ) {
    sqlite3_bind_text(stmt, 1, "abc", 3, 0);
    sqlite3_bind_text(stmt, 2, "def", 3, 0);
    // commit
    sqlite3_step(stmt) ;
    sqlite3_finalize(stmt) ;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM