加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C语言中 sqlite3 的 一些调用方式

发布时间:2020-12-12 19:31:42 所属栏目:百科 来源:网络整理
导读:1.创建数据库 2.创建表 3.清空表中数据 4.插入数据 /****************insert data prepare********************/ sqlite3_stmt* stmt1 = NULL; const char* beginSQL = "BEGIN TRANSACTION"; if (sqlite3_prepare_v2(conn,beginSQL,strlen(beginSQL),stmt1,N


1.创建数据库


2.创建表



3.清空表中数据



4.插入数据

/****************insert data prepare********************/
sqlite3_stmt* stmt1 = NULL;
const char* beginSQL = "BEGIN TRANSACTION";
if (sqlite3_prepare_v2(conn,beginSQL,strlen(beginSQL),&stmt1,NULL) !=SQLITE_OK)
{
if (stmt1)
sqlite3_finalize(stmt1);
sqlite3_close(conn);
return;
}


if (sqlite3_step(stmt1) != SQLITE_DONE) {
sqlite3_finalize(stmt1);
sqlite3_close(conn);
return;
}
sqlite3_finalize(stmt1);
/******************bind and insert****************************/
const char* insertSQL = "INSERT INTO basicpower VALUES(?,?)";
sqlite3_stmt* stmt3 = NULL;
if (sqlite3_prepare_v2(conn,insertSQL,strlen(insertSQL),&stmt3,NULL) != SQLITE_OK) {
if (stmt3)
sqlite3_finalize(stmt3);
sqlite3_close(conn);
return;
}
//char a[2000];
for(i=0;i<len;i++)
{
sqlite3_bind_int(stmt3,1,i);
sqlite3_bind_int(stmt3,2,data[i]);
//将数组中的数据绑定,然后插入表中

if (sqlite3_step(stmt3) != SQLITE_DONE) {
sqlite3_finalize(stmt3);
sqlite3_close(conn);
return;
}
/*****重新初始化该sqlite3_stmt对象绑定的变量。***/
sqlite3_reset(stmt3);
printf("Insert Succeed.n");


}
sqlite3_finalize(stmt3);
/********提交之前的事物。********/
const char* commitSQL = "COMMIT";
sqlite3_stmt* stmt4 = NULL;
if (sqlite3_prepare_v2(conn,commitSQL,strlen(commitSQL),&stmt4,NULL) !=SQLITE_OK) {
if (stmt4)
sqlite3_finalize(stmt4);
sqlite3_close(conn);
return;
}
if (sqlite3_step(stmt4) != SQLITE_DONE) {
sqlite3_finalize(stmt4);
sqlite3_close(conn);
return;
}
printf("finish insert data okn");
sqlite3_finalize(stmt4);



5.取出数据

const char* selectSQL = "SELECT data FROM basicpower"; //直接选择要查询的数据列 sqlite3_stmt* stmt3 = NULL; if (sqlite3_prepare_v2(conn,selectSQL,strlen(selectSQL),NULL) !=SQLITE_OK) { if (stmt3) sqlite3_finalize(stmt3); sqlite3_close(conn); return; } int count=0; int fieldCount = sqlite3_column_count(stmt3); //有几个要查询的列。这里就一个data数据列 printf("the count is %d n",fieldCount); do{ int i; int r = sqlite3_step(stmt3); if (r == SQLITE_ROW) { for (i = 0; i < fieldCount; ++i) { int vtype = sqlite3_column_type(stmt3,i); if (vtype == SQLITE_INTEGER) { int v = sqlite3_column_int(stmt3,i); //printf("The INTEGER value is %d.n",v); data[count]=v; //将取出的数据放入要发送的数组中后面的判断是对其他类型的。 } else if (vtype == SQLITE_FLOAT) { double v = sqlite3_column_double(stmt3,i); printf("The DOUBLE value is %f.n",v); } else if (vtype == SQLITE_TEXT) { const char* v = (const char*)sqlite3_column_text(stmt3,i); printf("The TEXT value is %s.n",v); } else if (vtype == SQLITE_NULL) { printf("This value is NULL.n"); } } }else if (r == SQLITE_DONE) { printf("Select Finished.n"); break; } else { printf("Failed to SELECT.n"); sqlite3_finalize(stmt3); sqlite3_close(conn); return; } count++; //循环将取出的值放入data[count]数组中 }while(1); sqlite3_finalize(stmt3); break;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读