• 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();
     




     
  • 相关阅读:
    Eclipse Alt + / 快捷键失效
    oracle nvl()函数
    搭建spring boot项目
    Maximum call stack size exceeded
    vue混入函数问题
    ASP.NET Core 2.0中的Azure Blob存储
    如何在ASP.NET Core 2.0中使用Razor页面
    将参数传递给ASP.NET Core 2.0中的中间件
    使用.net core在Ubuntu构建一个TCP服务器
    如何在ASP.NET Core Web API测试中使用Postman
  • 原文地址:https://www.cnblogs.com/aceview789/p/4776536.html
Copyright © 2020-2023  润新知