【VFB】数据库(VFB教程3-4)
此处为VisualFreeBasic编程教程(从零开始学或VB进阶)的子章节部分,全部目录点链接。如果,你只是保存少量数据,如软件的配置,设置等等,可以考虑用 INI
使用也很简单,基本上就读和写。读取
aa=INI_GetKey("文件名.INI","组名称","字段","默认值")默认值是当这字段不存在时,返回给 aa 的值
写入
INI_SetKey("文件名.INI","组名称","字段","数据值") 写数据,如果"数据值"为空,将会删除此字段如果,文件不存在,将会自动创建
其它函数是,整组读取,整组删除,很简单,要用到时看下函数参数。
假如有大量数据,那就要用到数据库引擎了。
微软有 ACC数据库,用ADO数据库引擎操作,来到了VFB,当然要用比它好用,且0配置的,不需要其它支持的SQLite数据库了。
除非很念旧,很固执,必须用ACC,不然,我们必须用非常好的SQLite数据库。原来的ACC数据库,可以用SQLite管理软件来转换
想要用数据库,必须要有个非常好用,操作简单的数据库管理软件,Navicat 是业内世界上数一数二的管理软件,外国的且是收费的,在天朝,大家懂的,随便用。
想要用好数据库,必须得学习 SQL 语法,这是数据库语言,不管你是写网页,写电脑软件,写手机软件,这 SQL是通用的,
我们不需要深入学习SQL,但是基础是必须的,需要购买本SQL的书,好好学习。
关于SQL学习和管理器软件使用,本文不提了,只说与VFB相关的。
打开数据库Dim db As SQLite3 Ptr 'DB 为后面使用数据用
SQLiteOpen db,"数据库文件","密码,无密码此参数省略"关闭数据库SQLiteClose db
执行SQLSQLiteExec db,"SQL语句" '文字编码是 Utf8,而SQLiteExec会自动转换,不需要我们转换
查询数据Dim sql As String ,rs() As String
sql="SELECT * FROM 表名 WHERE 条件LIMIT 获取行数"'文字编码是 Utf8,而SQLiteSelect会自动转换,不需要我们转换
SQLiteSelect( hDB,Sql,rs())查询来的 RS() 是二维数组 第0列是字段名For i=0 To UBound(rs,1)
Print Utf8toStr(rs(0,i)) '显示字段名称文字都是Utf8格式的,有中文,必须用Utf8toStr转换
Next显示全部数据,注意,数据从 1 开始,0行是字段名称For y=1 To UBound(rs,1)
For x=0 To UBound(rs,2)
Print rs(y,x) & " , " ;
Next
Next插入数据例题SQLiteExec(hDB,"INSERT INTO test(id,name,sex) VALUES('1','Tom','M')")
表 字段名 值更新数据SQLiteExec(hDB,"UPDATE test SET sex='M' WHERE name='Jerry'")
表 条件 更新内容删除数据SQLiteExec(hDB,"DELETE FROM test WHERE name='Jerry'")
表 条件
SQLiteExec(hDB,"DELETE FROM test WHERE id IN('003','005'")
表 条件受影响的记录数,我们可以使用sqlite3_change(sqlite3 *)的API来统计上一次操作受影响的记录数。printsqlite3_changes(hDB)
整理数据库,也称压缩数据库SQLiteExec(hDB,"VACUUM")
事务(Transaction) 批量处理SQL语句,如果大量操作数据库,会很慢的,必须用这个
SQLiteExec(hDB, "BEGIN TRANSACTION") ' 开始一个事务
SQLiteExec( .....SQL)
....... 大量SQL
SQLiteExec(hDB, "COMMIT TRANSACTION")' 执行事务
SQLiteExec(hDB, "END TRANSACTION") ' 结束事务
注意:以上sqlite代码,生成的EXE,将包含数据库引擎,所以,你的EXE将会增加700KB左右,好处是,没必要带个 sqlite3.DLL 文件了。
坏处是 EXE文件变大,不过,谁在乎这么点大的EXE呢。
因此,VFB生成的EXE纯绿色,单文件。
使用ADO数据库
在 WinFBX 里,有个 ADO数据库 章节,自己看帮助,自己研究下,本人没搞过,目前不知道。
此贴必火,占位刘留名~~~~
页:
[1]