实现手机上的数据库
2015-09-01 17:32
369 查看
一般情况下,数据库应该是放在云服务器等存储,但为何微信等软件,一卸载,通讯录能够保存,但所有的聊天记录等就不见了,我们可以实验下,在电脑上设计好表,在手机上存储数据库。
一、建数据库
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来控制数据库开关,无需服务器也可看到数据。
一、建数据库
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来控制数据库开关,无需服务器也可看到数据。
相关文章推荐
- SQL Helper
- 我所知道的MYSQL快速建表的3种方法
- MyBatis——动态SQL
- Linux系统下设置Oracle开机自动启动
- Oracle使用笔记(1)
- MySQL 存在索引但是不被使用的情况
- 问题:oracle long 与 clob;结果:long类型比clob到底差在什么地方?
- DataView的ToTable方法,类似数据库Distinct。
- mongo-kafka: mongodb 数据到kafka的实时传输
- MySql高效的查询出随机记录的方法
- 部署 MySQL 主从模式
- ORA-28002: 密码将在 7 天后到期
- 关于MySQL数据被删除后空间重用的问题实验
- 分析hibernate与jdbC的优缺点
- redis java
- Oracle数据块深入分析总结
- mysql 如何kill session
- MySQL存储过程之游标
- mysql索引及类型
- 问题:oracle 字符串转换成日期;结果:[oracle] to_date() 与 to_char() 日期和字符串转换