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




     
  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/aceview789/p/4776536.html
Copyright © 2020-2023  润新知