• 2024-07-12mormot.rest.core--TRestRunThreads
    mormot.rest.core--TRestRunThreads{************TRestRunThreads-REST实例的多线程处理}///访问TRest实例的多线程处理TRestRunThreads=class(TSynPersistentLock)protectedfOwner:TRest;//TRest实例的所有者fBackgroundTimer:TRest
  • 2024-07-12mormot.rest.core--TRestBackgroundTimer
    mormot.rest.core--TRestBackgroundTimer{************自定义REST执行}type///TRestServer.Uri()方法可能执行的所有命令//-execSoaByMethod用于基于方法的服务//-execSoaByInterface用于基于接口的服务//-execOrmGet用于ORM读取操作,即Retrieve
  • 2024-07-12mORMot2 的 mormot.defines.inc
    mORMot2的mormot.defines.inc到底配置了啥,居然写了700多行!{这个文件是开源SynopsemORMot框架2的一部分,遵循MPL/GPL/LGPL三重许可协议-详见LICENSE.md定义了一组集中的条件编译指令,包含在所有框架单元中,也可以用于您自己的私有单元。}(********************
  • 2024-07-10mormot.core.threads--TSynThreadPool
    mormot.core.threads--TSynThreadPool{************面向服务器进程的线程池}TSynThreadPool=class;//前向声明TSynThreadPool类///定义了TSynThreadPool所使用的工作线程TSynThreadPoolWorkThread=class(TSynThread)protectedfOwner:TSynThreadPool;//
  • 2024-07-08mormot.core.threads--TSynParallelProcess
    mormot.core.threads--TSynParallelProcess{************线程池中的并行执行}type///TSynParallelProcess的并行化过程回调//-如果0<=IndexStart<=IndexStop,则应执行某些过程TOnSynParallelProcess=procedure(IndexStart,IndexStop:integer)ofobject;
  • 2024-07-08mormot.core.threads--TSynBackgroundThreadMethod
    mormot.core.threads--TSynBackgroundThread在mORMot2框架中,TSynBackgroundThreadEvent、TSynBackgroundThreadMethod、TSynBackgroundThreadProcedure、TSynBackgroundThreadProcess和TSynBackgroundTimer这几个类虽然都涉及到后台线程的执行,但它们各自有不同的用途和设计目标
  • 2024-07-08mormot.core.threads--TBlockingProcess
    mormot.core.threads--TBlockingProcesstype///TBlockingProcess实例的当前状态TBlockingEvent=(evNone,//无状态evWaiting,//等待状态evTimeOut,//超时状态evRaised);//触发状态{$M+}//开启内存管理消息,用于调试
  • 2024-07-08mormot.core.threads--TSynQueue
    mormot.core.threads--TSynQueue以下是对mormot.core.threads中部分代码的翻译,特别是关于TSynQueue类的部分:const//在这里定义以避免在uses子句中显式链接到syncobjs单元wrSignaled=syncobjs.wrSignaled;//等待结果:已发出信号wrTimeout=syncobjs.wrTimeout;
  • 2024-07-08mormot.core.threads--TSynBackgroundTimer
    mormot.core.threads--TSynBackgroundTimertype//TSynBackgroundThreadProcess类声明(稍后定义)TSynBackgroundThreadProcess=class;///由TSynBackgroundThreadProcess定期执行的事件回调TOnSynBackgroundThreadProcess=procedure(Sender:TSynBackgroundThr
  • 2024-07-07mORMot虚拟数据集--TOrmTableDataSet
    如何快速显示OrmTable--可以使用TOrmTableDataSet这是mormot.db.rad.ui.orm的主要功能type///只读虚拟TDataSet,能够访问TOrmTableTOrmTableDataSet=class(TVirtualDataSet)protectedfTable:TOrmTable;//关联的TOrmTable实例{$ifndefUNICODE}//如
  • 2024-07-06mORMot模糊概念--FormatSQL-第1部分
    mORMot里面的模糊概念--FormatSQL第1部分mORMot的FastFormat到底是%还是?作为参数!,先看看关键代码。下面是代码原始注释functionFormatSql(constFormat:RawUtf8;constArgs,Params:arrayofconst):RawUtf8;fastFormat()functionreplacement,handling%but
  • 2024-06-10mORMot and Open Source friends SynProject Tutorial (SynProject教程)
    mORMotandOpenSourcefriendsSynProjectTutorial--(SynProject教程)第一步本页介绍SynProject的一些典型用法。我们将为mORMot框架本身创建一个源代码存储库和相关的文档。您要求文档,我们将通过SynProject自动生成它!我们需要什么因此,我们在硬盘上的D:\Dev\Lib文件夹中
  • 2024-05-26End Of Live OpenSSL 1.1 vs Slow OpenSSL 3.0
    EndOfLiveOpenSSL1.1vsSlowOpenSSL3.0【英文原文】你可能已经注意到,OpenSSL1.1.1系列将于下周一(2024年5月27日)达到寿命终止(EOL)……最明智的选择是尽快切换到3.0或3.1版本。当然,我们的mORMot2OpenSSL单元在1.1和3.x分支上运行,并在运行时自适应每个
  • 2024-05-03mORMot 1.18 第23章 使用纯SQL
    mORMot1.18第23章使用纯SQL有时你可能不想使用ORM,或者由于现有且不可更改的数据库与ORM不兼容而无法使用它。在这些情况下,你仍然可以依靠mORMot的其他功能,同时使用纯SQL。你可以发出纯SQL命令并以JSON格式获取数据。下面的示例展示了如何使用快速且开源的Zeos数据库库与Maria
  • 2024-05-03mORMot 1.18 第19章 安全性
    mORMot1.18第19章安全性第19章安全性在企业数据库设计中,安全性是必不可少的。mORMot已为此做好准备。19.1HTTP/HTTPS您可以在四个受支持的模式中的任何一个中进行选择,它们可以组合使用。Pascal类描述TSQLRestServerAuthenticationDefaultmORMot安全认证,作为一
  • 2024-05-03mORMot 1.18 第18章 使用REST/JSON的客户端/服务器
    mORMot1.18第十八章使用REST/JSON的客户端/服务器JSON是一种被多种语言和众多领先公司接受的标准。正如我们在JSON章节中所解释的,它是标准化的,紧凑且解析速度快,同时当加入非关键性空格时,也易于人类阅读。这些事实使其成为数据交换最受欢迎的格式之一。JSON支持六种数据类型:
  • 2024-05-02mORMot 1.18 第13章 动态数组
    mORMot1.18第13章动态数组众所周知,数组是非常有用的。但在现实生活中,情况是不可预测的,数组的元素数量或大小可能会随着时间的推移而增长。有些语言,如PHP,就使得动态数组的使用变得很简单。在使用mORMot的Delphi中,我们使用类和方法来提供这一功能。首先,让我们声明一个典型的TS
  • 2024-05-02mORMot 1.18 第12章 Blobs(大二进制对象)
    mORMot1.18第12章Blobs(大二进制对象)有些情况下,mORMot会以BLOBs(大二进制对象)的形式保存和检索数据。TSQLRawBlob属性用于存储像图片和文件这样的二进制数据。以TDynArray.SaveTo二进制格式存储的动态数组。明确注册为BLOBs的记录。当从数据库中存储/检索时,BLOBs以Base64
  • 2024-04-29mORMot 1.18 第10章 连接表
    mORMot1.18第10章连接表如果数据库包含连接表,那么数据库将变得更加有用。假设读者已经知道何时以及为何需要单独的表,以及为何要将它们连接起来——许多关于数据库设计的书籍都详细介绍了这一点。我们不会在这里重复这些信息,甚至不会重复其中的任何子集。我们要介绍的是如何做
  • 2024-04-29mORMot 1.18 第08章 Delphi中的服务器端JavaScript
    mORMot1.18第8章Delphi中的服务器端JavaScript在mORMot框架中,对JavaScript脚本的支持被称为MonkeyOnRails(版权归PavelMashlyakovsky所有,邮箱:[email protected]),它借助了Mozilla基金会的SpiderMonkey类。mORMot允许程序员编写功能强大的应用程序,但如果客户希望自定义应用
  • 2024-04-28mORMot 1.18 第07章 简单的读写操作
    mORMot1.18第七章简单的读写操作本章描述了典型的数据读写操作。首先,我们将注意力集中在数据上,而不是函数。读取操作返回一个TID,它是一个32位或64位整数(取决于你的内存模型),反映了表的信息。TID在表中的每一行都是唯一的。ORM的新手可能会感到惊讶,但通常你不需要创建SQL查询
  • 2024-04-24mormot2 json 操作
    [mormot2json操作]本文非完全原创,本文部分内容来自博客园,作者:{咏南中间件}unitmormot2.json.serial;interfaceusesClasses,SysUtils,mormot.core.buffers,mormot.core.text,mormot.core.json,mormot.core.base//;type{TSerial}TSerial
  • 2024-04-24最精简使用mORMot (一)
    最精简使用mORMot(一)本文非原创,本文来自博客园,作者:{咏南中间件}mORMot是免费开源的SDK,它封装了HTTP.SYS,这是许多人使用它的原因,但mORMot本身已经被封装的很庞大,它提供许多的单元,这让人不免眼花缭乱,惊恐而不敢下手试用。其实,我们完全可以最精简使用mORMot,比如笔者就只使用它
  • 2024-04-24最精简使用mORMot (二)
    最精简使用mORMot[关于REST和WS]本文非原创,找了几个出处没有找到原始连接,特意整理收藏以下是关于“最精简使用mORMot”的完整攻略,包括基本概念、步骤和两个示例说明。基本概念mORMot是一个开源的ObjectPascal框架,用于构建高性能可扩展的Web应用程序和服务。它提供了一组强大
  • 2024-04-23mORMot2 的 Logger日志
    mORMot2的Logger日志Logger很多框架都有,简单的实现就是一个队列加一根线,有复杂的,QDAC里面涉及的就很巧妙,本来QDAC就是个线程框架,所以也有先天优势。在mORMot里面自然也有日志实现,它设计的比较麻烦。mORMot的Logger初始化beginTSynLog.Family.Level:=LOG_VERBOSE;