vb4a官方贴吧吧 关注:212贴子:688
  • 1回复贴,共1

如何调用现有的数据库

取消只看楼主收藏回复

这个也是个问得很多的问题。
现有数据库的调用是非常重要的一个功能,vb4a 12实现了这个功能,但是没有把他做的非常简单,而是需要通过几个语句的相互搭配才行,这里请各位等我们的进一步开发,做一个简单的语句一步到位,这里只是先说一下如何用过asset目录、解包unpack和文件操作来实现。
=======================================
1.文件结构
数据库文件存在于/data/data/com.pkgname/databases目录下,我们就是要将数据库释放到这里。
2.数据库结构
我们这里用一个测试数据库,vbfaphone这个示例,我们用这个示例建立了一个数据库文件,phone.db,建立表vb4aphone,建立了三个号码进去,分别是110,119和114,以及对应的名字。

我们把这个文件放到工程目录下的assets目录下,准备工作完成。
3.建立目录
Form的Initialize事件下,写入以下代码:
If Exists2("data/data/com.vbfaphone/databases")=False Then
Application.ToastMessage("Dir databases Not found, try To create one")
Mkdir2("data/data/com.vbfaphone/databases")
Else
Application.ToastMessage("Dir databases found")
End If
这个命令中,注意包名要和你的工程一致。
4.解包数据
If Exists2("data/data/com.vbfaphone/databases/phone.db") Then
Application.ToastMessage("Database file phone.db Not found, I'll Unpack it As [data/data/com.vbfaphone/databases/phone.db]")
Files.Unpack("phone.db", "data/data/com.vbfaphone/databases/phone.db")
End If
为了清楚地看到发生了什么,我加入了很多的提示,而且把建立目录和解包文件分开做,实际上是可以一起完成的。
5.编译程序,运行,然后在名字处输入查号台,点击查找,就ok了。
当然,这个例子中,Initialize事件中请注释掉建立数据库的语句
'Application.SQLEXEC("phone.db", "CREATE TABLE If Not EXISTS vb4aphone (name text, email text, phonenum text, addr Text)")
好了,有什么弄不好的就留言吧。


IP属地:四川1楼2014-04-08 09:57回复
    http://pan.baidu.com/s/1o6mD2sU#dir/path=%2Fvb4a%2F%E6%A1%88%E4%BE%8B
    示例程序:vb4aphone.v4a


    IP属地:四川4楼2014-04-08 10:15
    收起回复