微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MUSH中的Database

1、long DatabaSEOpen(BSTR dbname,BSTR Filename,long Flags)

dbname 给数据库取得名字

Filename 数据库文件路径

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐