SQLite——exec操作
【摘要】 本文使用C++开发语言,对SQLite数据库进行基本操作。SQLite数据库基本操作如下:打开数据库调用sqlite3_exec()函数,执行SQL语句关闭数据库; 打开数据库sqlite3_open函数函数作用: 用于打开指定数据库文件名的数据库。如果数据库文件不存在,则会在指定路径下创建。函数原型:////// \brief sqlite3_open/// \param filename...
本文使用C++开发语言,对SQLite数据库进行基本操作。
SQLite数据库基本操作如下:
- 打开数据库
- 调用sqlite3_exec()函数,执行SQL语句
- 关闭数据库;
打开数据库
sqlite3_open函数
函数作用: 用于打开指定数据库文件名的数据库。如果数据库文件不存在,则会在指定路径下创建。
函数原型:
///
/// \brief sqlite3_open
/// \param filename 数据库文件名称
/// \param ppDb OUT:SQLite数据库句柄
/// \return
///
int sqlite3_open(const char *filename, sqlite3 **ppDb);
注:如果文件名(参数filename)是":memory:",则为该连接创建一个私有的临时内存数据库
返回值:返回值为int,具体参照“Result Codes”集合。
成功:SQLITE_OK,即0;
失败:不等于SQLITE_OK,即非零;
执行SQL语句
sqlite3_exec函数
函数作用: 用于执行SQL语句
函数原型:
///
/// \brief sqlite3_exec
/// \param db 数据库连接
/// \param sql SQL语句
/// \param callback 回调函数
/// \param arg 回调函数的第一个参数
/// \param errmsg 错误信息
/// \return
///
int sqlite3_exec(sqlite3* db, const char *sql, int (*callback)(void*,int,char**,char**) , void *arg, char **errmsg);
其他说明:
- sql语句可以是一条或者多条。
- 当执行多条sql语句时,发生错误,则后续语句都会被跳过,不执行。
- 回调函数参数不是必须的,可以传null,因为不是所有的操作都需要调用回调函数。对于不关心SQL语句结果的操作,回调函数直接设置null即可。
回调函数说明:
int callback(void *data, int n_columns, char **col_values, char **col_names)
参数1:sqlite3_exec()函数指定的参数
参数2:结果列数
参数3:字符串指针数组,列数据
参数4:字符串指针数组,列名称
关闭数据库
sqlite3_close函数
函数作用: 关闭数据库,释放资源。
函数原型:
int sqlite3_close(sqlite3*);
其他说明:
- 无论是否成功打开数据库连接,数据库操作结束时,都应该通过sqlite3_close()函数来释放数据库相关资源,避免程序内存泄漏。
示例
数据库操作流程:
创建数据库–》设置SQL语句–》打开数据库–》执行SQL语句–》操作结束,关闭数据库。
数据库操作代码示例:
// 创建数据库
sqlite3 * database;
// 操作失败原因
char *err_msg = NULL;
// SQL语句,查询表demotable中的name字段
char sql[] = “SELECT name FROM demotable”;
// 打开数据库,内存中的临时数据库
int result = sqlite3_open(":memory:", &database);
if(SQLITE_OK != result)
{
// error
}
else
{
// 执行数据库
sqlite3_exec(database, sql, 0, 0, &err_msg);
}
// 关闭数据库
sqlite3_close(database);
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)