博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite数据库
阅读量:5159 次
发布时间:2019-06-13

本文共 4406 字,大约阅读时间需要 14 分钟。

SQLite_Open

SQLiteDB*SQLite_Open(const char* path);

功能:打开SQLite文件,与SQLite_Close函数配合使用,具体参照SQLite相关内容

参数:

path:文件路径

脚本语法:

SQLiteDB *db = SQLite_Open("test.db");

//todo

SQLite_Close(db);

 

SQLite_Close

voidSQLite_Close(SQLiteDB *db);

功能:关闭SQLite文件,与SQLite_Open函数配合使用

参数:

db:要关闭的文件名

脚本语法:

SQLiteDB *db = SQLite_Open("test.db");

//todo

SQLite_Close(db);

 

SQLite_ExecDML

intSQLite_ExecDML(SQLiteDB *db, const char* szSQL);

功能:对数据库进行基本操作(表是增、删、修改等操作),具体参照SQLite相关内容

参数:

db:文件的指针

szSQL:操作命令

脚本语法:

int nRows=SQLite_ExecDML(db,"create table emp(empno int, empnamechar(20));");

 

SQLite_ExecQuery

SQLiteQuery*SQLite_ExecQuery(SQLiteDB *db, const char* szSQL);

功能:SQLite查询操作,具体参照SQLite相关内容

参数:

db:文件的指针

szSQL:操作命令

脚本语法:

SQLiteQuery *dq = SQLite_ExecQuery(db, "select * from emp");

 

SQLite_ExecScalar

intSQLite_ExecScalar(SQLiteDB *db, const char* szSQL);

功能:SQLite查询操作,具体参照SQLite相关内容

参数:

db:文件的指针

szSQL:操作命令

脚本语法:

int nRows=SQLite_ExecScalar(db,"select count(*) from emp");

 

SQLite_TableExists:

intSQLite_TableExists(SQLiteDB *db, const char* szTable);

功能:检测db所指向的数据库文件中列名称为szTable中的内容的列是否存在,具体参照SQLite相关内容

存在返回1,不存在返回0

参数:

db:文件的指针

szTable:字符串指针(列的名称)

 

SQLite_Query_numfield:

intSQLite_Query_numfield(SQLiteQuery *query);

功能:获取当前数据库中query所指向的表的列数,具体参照SQLite相关内容

参数:

query:数据指针

 

SQLite_Query_descfield:

char*SQLite_Query_descfield(SQLiteQuery *query, int nField);

功能: 返回query所指向的第nField列的名称及数据类型,具体参照SQLite相关内容

参数:

query:数据指针

nField:数据表的列号

脚本语法:

char str[256] = "";

strcpy(str,SQLite_Query_descfield(dq, 1));

 

SQLite_Query_nextRow:

voidSQLite_Query_nextRow(SQLiteQuery *query);

功能:指向下一行数据库数据,具体参照SQLite相关内容

参数:

query:数据指针

 

SQLite_Query_eof:

intSQLite_Query_eof(SQLiteQuery *query);

功能:查询当前query所指向的数据库数据是否是文件结束标志,具体参照SQLite相关内容

是返回1,否返回0

参数:

query:数据指针

脚本语法:

while(!SQLite_Query_eof(dq))

{

    //todo

    SQLite_Query_nextRow(dq);

    }

 

SQLite_Query_geIntfieldByID:

intSQLite_Query_geIntfieldByID(void *query, int nField);

功能:返回当前query所指向的第nField列数据内容(int型),具体参照SQLite相关内容

参数:

query:数据指针

nField:数据表的列号

 

SQLite_Query_geIntfieldByName:

intSQLite_Query_geIntfieldByName(SQLiteQuery *query, const char* filedName);

功能:返回当前query所指向的列名称为filedName的数据内容(int型),具体参照SQLite相关内容

参数:

query:数据指针

filedName:数据表的列的名称

 

SQLite_Query_getDoublefieldByID:

doubleSQLite_Query_getDoublefieldByID(SQLiteQuery *query, int nField);

功能:返回当前query所指向的第nField列数据内容(double型),具体参照SQLite相关内容

参数:

query:数据指针

nField:数据表的列号

 

SQLite_Query_getDoublefieldByName:

doubleSQLite_Query_getDoublefieldByName(SQLiteQuery *query, const char* filedName);

功能:返回当前query所指向的列名称为filedName的数据内容(double型),具体参照SQLite相关内容

参数:

query:数据指针

filedName:数据表的列的名称

 

SQLite_Query_getStringfieldByID:

voidSQLite_Query_getStringfieldByID(SQLiteQuery *query, int nField, char* Rstr);

功能:返回当前query所指向的第nField列数据内容(String型)到Rstr所指向的字符串,具体参照SQLite相关内容

参数:

query:数据指针

nField:数据表的列号

Rstr:字符串指针

 

SQLite_Query_getStringfieldByName:

voidSQLite_Query_getStringfieldByName(SQLiteQuery *query, const char* fieldName,char* Rstr);

功能:返回当前query所指向的列名称为filedName的数据内容(String型)到Rstr所指向的字符串,具体参照SQLite相关内容

参数:

query:数据指针

nField:数据表的列号

Rstr:字符串指针

 

SQLite数据库示例:

int nRows;

int nfield;

int i;

int exist;

SQLiteQuery *dq;

char test1[256];

char test2[256];

SQLiteDB *db =SQLite_Open("test.db");

nRows=SQLite_ExecDML(db,"createtable emp(empno int, empname char(20),ID float);");

 

nRows=SQLite_ExecDML(db,"begintransaction;");

nRows=SQLite_ExecDML(db,"insert into emp values (7, '甲方',20001);");

nRows=SQLite_ExecDML(db,"insert into emp values (9, '乙方',20002);");

nRows=SQLite_ExecDML(db,"insert into emp values (11, '丙方',20003);");

SQLite_ExecDML(db,"committransaction;");

 

nRows=SQLite_ExecScalar(db,"selectcount(*) from emp");

logoutf("nRows:%d",nRows);

exist = SQLite_TableExists(db,"emp");

logoutf("exist:%d",exist);

 

dq =SQLite_ExecQuery(db, "select * from emp");

if(dq != NULL)

{

    nfield= SQLite_Query_numfield(dq);

    for(i = 0; i< nfield; i++)

    {

        strcpy(test1,SQLite_Query_descfield(dq,i));

        logoutf("%s\n",test1);

    }

 

    while(!SQLite_Query_eof(dq))

    {      

        intnint = SQLite_Query_geIntfieldByName(dq,"empno");

        intidint = SQLite_Query_geIntfieldByID(dq,0);

            

        doubleac = SQLite_Query_getDoublefieldByName(dq,"ID");

        doubleidreal = SQLite_Query_getDoublefieldByID(dq,0);

 

        SQLite_Query_getStringfieldByName(dq,"empname",test1);

        SQLite_Query_getStringfieldByID(dq,1,test2);

        logoutf("%d%d %lf %lf %s %s",nint,idint,ac,idreal,test1,test2);

 

        SQLite_Query_nextRow(dq);

    }

}

SQLite_Close(db);

转载于:https://www.cnblogs.com/mcgame/archive/2013/05/21/3090825.html

你可能感兴趣的文章
Mysql ==》 文件夹(库)
查看>>
主攻ASP.NET.3.5.MVC3.0架构之重生:用户角色与用户增删改查(十)
查看>>
简单的Ubuntu16.04 tensorflow, keras环境配置
查看>>
Django RedirectView
查看>>
jenkins配置自动发送邮件,抄送
查看>>
线段树区间修改,区间求和,区间求平方和,最大最小值
查看>>
struts2请求过程源码分析
查看>>
黑马day14 过滤器概述&amp;生命周期&amp;运行过程
查看>>
SVN文件排除
查看>>
CF Gym 100637G \#TheDress (水)
查看>>
live555源码研究(四)------UserAuthenticationDatabase类
查看>>
C#net多线程多文件压缩下载
查看>>
maven:pom.xml 搭建spring框架基本配置
查看>>
[Python Study Notes]CS架构远程访问获取信息--SERVER端v2.0
查看>>
基于OpenStack构建企业私有云(4-2)Nova_计算节点
查看>>
linux 查看系统信息命令(比较全)
查看>>
Linux Makefile 教程(转)
查看>>
___pInvalidArgHandler already defined in LIBCMTD.lib(invarg.obj)
查看>>
A计划 HDU - 2102
查看>>
Ajax完整结构和删除
查看>>