1、long DatabaSEOpen(BSTR DbName,BSTR Filename,long Flags)
DbName 给数据库取得名字
Flags 一般取6就可以,表示可读写可创建
注:尝试打开数据库,如果数据库不存在会新建一个,当使用DatabaseClose的时候创建在硬盘。注意数据库路径输入过程中的转移字符“\”,成功,函数会返回0,如果不成功会返回一个非零数值。如果数据库路径文件名使用":memory:"就会在内存中创建一个数据库。
2、long DatabaseExec(BSTR DbName,BSTR sql)
此函数可以执行多个语句,如果执行过程中有语句出错就会中断执行,错误代码可以用DatabaseError来获得,如果成功返回0。此函数只能执行语句不能返回SELECT的结果。
3、对于读取数据需要一系列函数配合使用
long DatabasePrepare(BSTR DbName,BSTR sql) 要执行的sql语句,有点像ADO里的RS.OPEN
long DatabaseStep(BSTR DbName)有点像RS.NEXT,不过在这里每次读取前都要先执行,第一次也是,不然没有数据,读取一次游标向下走一下,如果读取成功返回值100,如果读取到结尾了返回101。
下面是读取后一系列取值的函数:
long DatabaseColumns(BSTR Name) 返回总的Column数
BSTR DatabaseColumnName(BSTR Name,long Column) 根据数字返回Column名
VARIANT DatabaseColumnNames(BSTR Name) 以table方式返回Column名
long DatabaseColumnType(BSTR Name,long Column) 根据数字返回Column类型
BSTR DatabaseColumnText(BSTR Name,long Column)以字符形式返回指定数字的Column值
VARIANT DatabaseColumnValue(BSTR Name,long Column) 以原有格式返回指定数字的Column值
VARIANT DatabaseColumnValues(BSTR Name) 以table方式返回Column值
取值操作后必须调用
long DatabaseFinalize(BSTR Name) 如果不调用此函数不能再开始下一个DatabasePrepare
4、BSTR DatabaseLastInsertRowid(BSTR Name) 似乎是返回你最近插入的一行数据的ROWID,但是似乎必须是主键+自动增长的才行
5、long DatabaseReset(BSTR DbName) 返回查询的第一行
6、VARIANT DatabaseGetField(BSTR Name,BSTR sql) 只返回一行值,不需要三步走,相当于三步走只取一行值
7、long DatabaseClose(BSTR DbName)
8、返回值列表
sqlITE_OK 0 : Successful result sqlITE_ERROR 1 : sql error or missing database sqlITE_INTERNAL 2 : Internal logic error in sqlite sqlITE_PERM 3 : Access permission denied sqlITE_ABORT 4 : Callback routine requested an abort sqlITE_BUSY 5 : The database file is locked sqlITE_LOCKED 6 : A table in the database is locked sqlITE_NOMEM 7 : A malloc() Failed sqlITE_READONLY 8 : Attempt to write a readonly database sqlITE_INTERRUPT 9 : Operation terminated by sqlite3_interrupt() sqlITE_IOERR 10 : Some kind of disk I/O error occurred sqlITE_CORRUPT 11 : The database disk image is malformed sqlITE_NOTFOUND 12 : NOT USED. Table or record not found sqlITE_FULL 13 : Insertion Failed because database is full sqlITE_CANTOPEN 14 : Unable to open the database file sqlITE_PROTOCOL 15 : NOT USED. Database lock protocol error sqlITE_EMPTY 16 : Database is empty sqlITE_SCHEMA 17 : The database schema changed sqlITE_TOOBIG 18 : String or BLOB exceeds size limit sqlITE_CONSTRAINT 19 : Abort due to constraint violation sqlITE_MISMATCH 20 : Data type mismatch sqlITE_MISUSE 21 : Library used incorrectly sqlITE_NOLFS 22 : Uses OS features not supported on host sqlITE_AUTH 23 : Authorization denied sqlITE_FORMAT 24 : Auxiliary database format error sqlITE_RANGE 25 : 2nd parameter to sqlite3_bind out of range sqlITE_NOTADB 26 : File opened that is not a database file sqlITE_ROW 100 : DatabaseStep has another row ready sqlITE_DONE 101 : DatabaseStep has finished executing原文链接:https://www.f2er.com/sqlite/201722.html