博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现手机上的数据库
阅读量:5173 次
发布时间:2019-06-13

本文共 1826 字,大约阅读时间需要 6 分钟。

一般情况下,数据库应该是放在云服务器等存储,但为何微信等软件,一卸载,通讯录能够保存,但所有的聊天记录等就不见了,我们可以实验下,在电脑上设计好表,在手机上存储数据库。
一、建数据库
1、打开RAD Studio XE8,在右侧栏中找到Data Explorer,找到SQLite,右键->Add new Connection,填写名字;
2、保持上侧不变,在下栏中的Database中选择文件,一般是新建个文件夹,在文件夹中的文件名里填写****.s3db,注意后缀名是.s3db,自定义后即可;
3、在框中填写User_Name、PassWord,选择Entry为128加密,LockingMode为Normal,StringFormat为Unicode,点击Test,选择好Profile,即可弹出successfully框;
 
4、在右侧的SQL Script中写入建表代码:
create table user( 
   id int(10),
   name varchar(100)
)【注意为小括号】
      
执行后,说明建表user成功。
二、使用数据库

1、新建工程,在.cpp文件中加入头文件#include<System.IOUtils.hpp>;

2、在刚刚建好的Connection中,将Table里的User拖曳至Form中,就生成了MydemoConnection、Usertable两个组件,记得把Connection和Action设为true;
3、开始加入label和button组件,用于显示数据,再加入组件 BindNavigator,在DataSourse中选择BindSourceDB1(自动生成);
4、加入FDGUIxWaitCursor1;
5、打开View->LiveBindings Designer,在面板中将属性和可编辑的edit相连,BindNavigator会自动与*相连:
6、点击ImageControl的OnChange事件,写入代码:
void __fastcall TForm2::ImageControl1Change(TObject *Sender)
{
 this->UserTable->Edit();
 this->UserTable->FieldByName("picture")->Assign(this->ImageControl1->Bitmap);
}
或:点击Table组件的各种事件,做相应的触发动作,如:
void __fastcall TForm2::UserTableBeforePost(TDataSet *DataSet)
{
  this->UserTable->Edit();
  this->UserTable->FieldByName("picture")->Assign(this->ImageControl1->Bitmap);
}
7、点击MydemoConnection的BeforeConnect事件,写入代码:
void __fastcall TForm2::MydemoConnectionBeforeConnect(TObject *Sender)
{
    this->MydemoConnection->Params->Values["Database"]= System::Ioutils::TPath::Combine(System::Ioutils::
    TPath::GetDocumentsPath(),"Mydemo.s3db");
}
8、在电脑上运行时,效果如图,点击菜单栏的各个按钮,可方便地实现数据的增删改查。
三、在手机运行
1、打开cmd,找到C:\>Users\Public\Documents\Embarcadero\Studio\FireDAC路径下的两个 .ini 文件,将其添加到工程中,以及把在最初生成数据库的.s3db文件,同样加入工程中;
【注意:打开Project->Deployment,检查两个ini文件是否为 \assets\internal\】
2、运行前,把Usertable设为false,因为数据库文件较大时,手机会卡住打不开,所以可以加一个button来控制数据库开关,无需服务器也可看到数据。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/aceview789/p/4776323.html

你可能感兴趣的文章
英语生疏了,每日至少一句吧
查看>>
创建打不开文件夹
查看>>
完成登录功能,用session记住用户名
查看>>
12 for循环
查看>>
redis(hash篇)
查看>>
Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏...
查看>>
Hibernate一对多关联
查看>>
python 把函数作为参数 ---高阶函数
查看>>
jQuery + ashx 实现图片按比例预览、异步上传及显示
查看>>
android 代码中使用textAppearance
查看>>
【iOS】UITableViewDelegate 方法没有调用
查看>>
解决code::blocks 17.12不能debug的方法
查看>>
bzoj2961&&bzoj4140 共点圆
查看>>
96:经典实例,判断那一条是闰年:
查看>>
upsource初探
查看>>
让SVN自动更新代码注释中的版本号
查看>>
java中base64
查看>>
常用的mysql操作命令
查看>>
Unity3D的菜单及编辑器扩展
查看>>
我是如何拿到蚂蚁金服 offer 的 ?
查看>>