RAD Studio XE8 用控件实现数据库的增删改

一、设置数据库

  1. 解压缩:mysql-workbench-community-6.3.4-win32-noinstall、mysql-5.6.25-win32
  2. 打开mysql-5.6.25-win32到bin,打开mysqld.exe,执行后自动退出后,打开mysql-workbench-community-6.3.4-win32-noinstall中的MySQLWorkbench.exe,即可打开数据库,自定义新建连接即可,这个较为方便,解压后直接使用,无需再去配置环境。
  3. 数据的字符集的统一:utf-8_general_ci;
  4. select UUID():查询表中ID地址,varchar32位存储;
  5. 图片的存储:相对或绝对路径//直接存放(使用BLOB类型);
二、在RAD Studio XE8中的设置:
注意:FDconnection、TDataSource、FDQuery是配套出现的
  1. 新建工程,在面板中点击FireDAC,选择TFDConnection;
  2. Drivername设置为Mysql,Connected设为true(若报错,则将lib目录下的libmysql.dll复制到c:/windows目录下,注意要区分32位和64位 // 或在环境变量中设置path,设置mysql的路径);
  1. 在Params中填写DataBase名、端口(3306)、用户名(一般为root)、密码、server 的IP地址
  2. 注意:LoginPrompt置为false,ChracterSet改为utf8,点击Connection设为true;
  3. 找到TFDQuery1,设置connection为FDconnection1,在SQL中写sql语句,一般为查询,点击OK;Active设置为True;
  4. 在组件面板Data Access找到TDataSource,放入form,在DataSet双击得到FDQuery1
  5. 可以添加多个组件,然后打开View->LiveBindings Designer,在面板中将属性和组件相连,组件为可编辑的edit,箭头为双向时即为可修改,组件为只读,箭头为单向,即为只读;
  6. 在FDQuery1中的Active中设置true,在将FDGUIxWaitCursor1组件拖至form中,运行即可显示数据库数据。

三、实现多数据查询和操作

  1. 加入多个按钮,双击方法,写入this->DataSource1->DataSet->,根据next、prior、first、last,可显示不同位置的数据;
  2. 在FDQuery1中SQL栏中,根据sql语句的不同,展示不同数据;
四 、按条件查询(用组件控制,不涉及代码)
  1. 找到TFDQuery1,在SQL中写sql语句,例如where age=:Age(:后面为可任取名字,Age、abc等等);
  2. 在prames中选择省略号,双击内容,将DataType选为ftString(根据属性在数据库中的类型来确定),下面的框会符合条件,在value框中填入条件值;
  3. 关闭弹框后,将Active设为True。
五 、删除(用代码控制,其余增删改都类似)
  1. 找到TFDQuery1,在SQL中写sql语句,例如where age=:Age(:后面为可任取名字,Age、abc等等);
  2. 在prames中选择省略号,双击内容,将DataType选为ftString(根据属性在数据库中的类型来确定),下面的框会符合条件,在value框中填入条件值;
 
//注意此处可以预先设置SQL语句,变量ID、NAME,执行完当前语句后要在后面加上select 语句,否则报错
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  this->FDQuery1->Active = false;
  this->FDQuery1->ParamByName("ID")->AsString = this->EditQuery->Text;
  this->FDQuery1->ParamByName("NAME")->AsString = this->Edit6->Text;
  this->FDQuery1->Active = true;
 
  this->FDQuery1->Active = false;
  this->FDQuery1->SQL->Clear();
  this->FDQuery1->SQL->Add("select * from hello.User");
  this->FDQuery1->Active = true;
  }

//无需事先设置变量AD, 若用this->FDQuery1->ExecSQL();则无需新加SQL语句

void __fastcall TForm1::Button2Click(TObject *Sender)
{
//select * from hello.User where id=:ID AND username=:NAME;
  this->FDQuery1->Active = false;
  this->FDQuery1->SQL->Clear();
  this->FDQuery1->SQL->Add("delete from hello.User where Address=:AD");
  this->FDQuery1->ParamByName("AD")->AsString = this->Edit6->Text;
//无需在prames中设置,在->后面的AsString即类似将DataType选为ftString指定类型,若为id则应改为AsInteger.
  this->FDQuery1->ExecSQL();
 
}
六、处理图片(上传和显示)
1、在原有数据源操作上,放入ImageControl1组件,指向Picture属性后,先按修改或新建按钮,必要代码为:(保证该代码在点击图片框之前就执行)

    this->DataSource1->DataSet->Edit();

2、使得图片框处于编辑状态,再插入图片,按保存按钮,代码为:
      this->DataSource1->DataSet->FieldByName("Picture")->Assign
            (this->ImageControl1->Bitmap); 
      this->DataSource1->DataSet->Post();
 




 
原文地址:https://www.cnblogs.com/aceview789/p/4776536.html