實現手機上的數據庫

通常狀況下,數據庫應該是放在雲服務器等存儲,但爲什麼微信等軟件,一卸載,通信錄可以保存,但全部的聊天記錄等就不見了,咱們能夠實驗下,在電腦上設計好表,在手機上存儲數據庫。
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來控制數據庫開關,無需服務器也可看到數據。
相關文章
相關標籤/搜索