实现手机上的数据库

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

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

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