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