FireDAC 和 Sqlite 八:Blob类型数据的插入和读取

FireDAC 和 Sqlite 八:Blob类型数据的插入和读取

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。再按照“FireDAC和Sqlite二...
FireDAC 和 Sqlite 七:事务

FireDAC 和 Sqlite 七:事务

事务(Transaction)是一个对数据库执行工作单元。是以逻辑顺序完成的工作单位或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成。。它是一种机制,用以维护数据库的完整性。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。一个事务可以是一条SQL语句、一组SQL语句或整个程序。事务的语句开始事务:BEGIN...
FireDAC 和 Sqlite 六:加密

FireDAC 和 Sqlite 六:加密

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。Firedac支持数据库加密方式有:aes-...
FireDAC 和 Sqlite 五:备份、整理碎片

FireDAC 和 Sqlite 五:备份、整理碎片

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。一.备份先向Form中加入FDSQLite...
FireDAC 和 Sqlite 四:排序

FireDAC 和 Sqlite 四:排序

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。SQLite内部是按二进制排序,可以支持...
FireDAC 和 Sqlite 三:数据的操作

FireDAC 和 Sqlite 三:数据的操作

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。一.数据的插入procedure ...
FireDAC 和 Sqlite 二:创建数据库和表

FireDAC 和 Sqlite 二:创建数据库和表

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。先将“FireDAC和Sqlite一:基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。SQLite支持5种数据类型:Null,In...
FireDAC 和 Sqlite 一:基本控件和设置

FireDAC 和 Sqlite 一:基本控件和设置

Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi11中编译通过。一.FireDAC主要相关SQLite的单元:FireDAC.Phys.SQLiteCli:最底层的APIFireDAC.Phys.SQLite...
Delphi 的 Android 开发环境配置

Delphi 的 Android 开发环境配置

所有设置是在DelphiXE10.2.3中通过测试。环境配置共分为以下6个步骤:下载JDK,NDK,SDK地址https://www.androiddevtools.cn/ 下载JDK时,请找到JDK项,选择最新版点击后会跳转到www.oracle.com下载。https://www.oracle.com/java/technologies/javas...
Indy10  IdTCPServer 属性及事件

Indy10 IdTCPServer 属性及事件

以下代码在DelphiXE10.2Tokyo中编译通过,其中Indy版本:10.6.2属性:1.Active:启动服务。IdTCPServer1.Active:=True;2.Bindings:网卡绑定集合对象,类型为TIdSocketHandles。集合元素为网卡绑定对象。可以为idTCPServer设置多个IP与端口,同时可以指定IP的版本。IdTCPS...
多线程 - 释放线程

多线程 - 释放线程

线程的释放方式有两种:一种是线程在运行完成后自动释放,一种是手动释放。无论哪种都应在线程执行完释放,即线程停止后释放。要说明的是停止不是释放。线程的停止要也有两种方式:一种是运行完自动停止,一种是因为execute方法中做了循环,需要设置标志位来停止。1.自动停止自动释放这种情况时,execute方法中没有循环,执行完即停止,停止后就自动释放。在execute开始时...
Delphi多线程 - 通过线程类TThread新建线程

Delphi多线程 - 通过线程类TThread新建线程

Delphi中有一个线程类TThread,是用来实现多线程编程的,这里主要举例如何实现及应用,不做深究。以下例程是在Delphi2010环境运行。一. 建立工程及线程代码框架1.新建一个工程。2.点击菜单File->New->Other弹出NewItems对话框:3.选择DelphiProjects->Delph...
多线程 - 通过Synchronize更新VCL界面

多线程 - 通过Synchronize更新VCL界面

由于Delphi的VCL非常方便,导致开发人员不像在VC下更新窗口界面和工作线程的关系上分的那么清楚,给系统稳定带来潜在的危险。最好的方法是永远让更新窗口界面的工作仅由主线程完成,工作线程仅仅做后台的一些工作,当工作线程的结果需要反馈到界面上来的时候,应该使用各种同步对象(临界区、互斥量)等来进行同步,然后让主线程更新窗口界面。如果通过API建立线程,可以采用Send...
Delphi多线程 - 临界区

Delphi多线程 - 临界区

在多线程同步方法中,临界区相对简单,也是效率最高的办法。临界区就是将一段代码放入这个区域,一次只允许一个线程执行这段代码。线程执行到临界区时就独占了,其他线程如果要访问这段代码,一定要等前一个访问的线程结束才行。1.在interface区定义TRTLCriticalSection型全局变量var    MyCS:TRTL...
多线程 - 进程与线程

多线程 - 进程与线程

1.进程:磁盘上的一个可执行文件在被启动后,就是一个进程。如果想手动创建一个进程应调用CreateProcess。Windows加载一个进程时,它只是打开一个内存映象文件,然后把可执行文件的内容或DLL加载进内存。进程是非活跃的,它们什么也不做,真正活动起作用的是线程。一个进程就是一个加载过的程序,它不是正在运行,也不是正在执行。当要访问内存时,才将真正的物理内存映...
程序启动和退出时的执行顺序

程序启动和退出时的执行顺序

总原则:1.initialization的执行顺序首先看彼此单元之间是否有调用关系,被调用的先执行,然后再看工程文件的uses的顺序。2.OnCreate的执行顺序由工程单元中的如下类似代码决定:    Application.CreateForm(TForm1, Form1);  &n...
Unit单元文件构成

Unit单元文件构成

Delphi的Unit构成unit Unit1//单元名称,必须有interface //接口区,必须有implementation //实现区,必须有initialization //初始化,程序启动时先顺序执行,可以没有finalization //结束化,程序结束时运行,只有当In...
程序带参数运行

程序带参数运行

 Delphi中有两个专门用于读取命令行参数的变量: Paramcount:用于返回命令行参数的个数 Paramstr数组:用于返回指定的命令行参数,paramstr(0)是程序名,参数从paramstr(1)开始发送端:uses ShellAPI;procedure TForm1.Button1Click(S...