SQLite数据库

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);

posted @ 2013-05-21 15:23  zj_king  阅读(307)  评论(0编辑  收藏  举报