QuickLib是一个快速开发库 QuickLib是一个快速开发库,它提供了诸如AutoMapper、LinQ、IOC依赖注入、MemoryCache、计划任务、Json和Yml配置、序列化程序等多种功能。这个库特别支持Delphi和Firemonkey的多平台开发,包括Windows、Linux、Android、OSX和IOS。同时,QuickLib也支持freepascal,使得开发人员能够更轻松地构建跨平台应用程序并提高生产力。 功能领域: 映射(Mapping):将一个类的字段映射到另一个类,复制对象等。 配置(Config):将配置作为对象使用,并从/向文件(Json/Yaml)或...

  ZGYAxb2wjd2Z   2天前   7   0   0 Delphi

QuickLogger强大的企业级异步记录器 这是一个用于在文件、控制台、内存、电子邮件、rest、事件日志、Syslog、slack、telegram、Redis、logstash、elasticsearch、influxdb、graylog、Sentry、Twilio上记录日志,并为DelphiFiremonkey(适用于Windows/Linux/OSX/IOS/Android)抛出事件的库。 QuickLogger是异步的。所有日志都被发送到队列中,不会影响您的应用程序流程。您可以定义许多提供者来发送每个日志条目,并决定每个人可以接受什么级别。 program {$APPTYPECON...

  ZGYAxb2wjd2Z   11天前   69   0   0 Delphi

mORMot1.18第13章动态数组 众所周知,数组是非常有用的。但在现实生活中,情况是不可预测的,数组的元素数量或大小可能会随着时间的推移而增长。有些语言,如PHP,就使得动态数组的使用变得很简单。在使用mORMot的Delphi中,我们使用类和方法来提供这一功能。 首先,让我们声明一个典型的TSQLRecord: TSQLRecordPeople=class(TSQLRecord) private fFirstname:RawUTF8; published propertyFirstname:RawUTF8readfFirstnamewritefFirstname; end; 现在,我们...

  ZGYAxb2wjd2Z   16天前   16   0   0 Delphi

mORMot1.18第十八章使用REST/JSON的客户端/服务器 JSON是一种被多种语言和众多领先公司接受的标准。正如我们在JSON章节中所解释的,它是标准化的,紧凑且解析速度快,同时当加入非关键性空格时,也易于人类阅读。这些事实使其成为数据交换最受欢迎的格式之一。 JSON支持六种数据类型: JSON类型 描述 数字 JavaScript中的双精度浮点数格式,通常取决于具体实现。没有特定的整数类型 字符串 双引号括起来的Unicode,带有反斜杠转义 布尔值 true或false 数组 一个有序的值序列,以逗号分隔并括在方括号中;这些值不需要是同一类型 对象...

  ZGYAxb2wjd2Z   16天前   30   0   0 Delphi

mORMot1.18第19章安全性 第19章安全性 在企业数据库设计中,安全性是必不可少的。mORMot已为此做好准备。 19.1HTTP/HTTPS 您可以在四个受支持的模式中的任何一个中进行选择,它们可以组合使用。 Pascal类 描述 TSQLRestServerAuthenticationDefault mORMot安全认证,作为一种专有的双重挑战和SHA-256哈希 TSQLRestServerAuthenticationSSPI Windows认证,通过已登录的用户进行 TSQLRestServerAuthenticationNone 仅基于用户名的简单认证(...

  ZGYAxb2wjd2Z   16天前   20   0   0 Delphi

mORMot1.18第23章使用纯SQL 有时你可能不想使用ORM,或者由于现有且不可更改的数据库与ORM不兼容而无法使用它。在这些情况下,你仍然可以依靠mORMot的其他功能,同时使用纯SQL。 你可以发出纯SQL命令并以JSON格式获取数据。下面的示例展示了如何使用快速且开源的Zeos数据库库与MariaDB/MySQL一起执行此操作。 请注意,如何在同一台机器上的多个数据库中对表进行联接是可能的。 programlistpeople; {$APPTYPECONSOLE} uses Windows,Messages,SysUtils,Variants,Classes, SynComm...

  ZGYAxb2wjd2Z   16天前   29   0   0 Delphi

mORMot1.18第11章JSONJavaScript对象表示法 JSON是一种用于指定数据结构和数组的行业标准格式。(它是ECMA404的一个子集。)虽然它最初是在JavaScript语言中定义的,但由于以下原因,它已成为一种流行的互联网格式,用于指定和交换数据: 它很紧凑,使用的数据字节比其他大多数格式都少 当增加足够的空格时,人类可以很容易地阅读 它解析效率高,因此可以非常快速地完成解析 其他替代方案是通用的XML(在REST/HTTP中是JSON的替代方案),或ISOOSI网络模型中的ASN.1/BER(用于LDAP、SNMP和其他一些互联网和OSI协议)。 例如,考虑一个名字数...

  ZGYAxb2wjd2Z   17天前   31   0   0 Delphi

mORMot1.18第12章Blobs(大二进制对象) 有些情况下,mORMot会以BLOBs(大二进制对象)的形式保存和检索数据。 TSQLRawBlob属性用于存储像图片和文件这样的二进制数据。 以TDynArray.SaveTo二进制格式存储的动态数组。 明确注册为BLOBs的记录。 当从数据库中存储/检索时,BLOBs以Base64文本格式存储。但在RESTful交互中共享时,通常只传递标量(文本,数字等),而BLOB二进制数据则在单独的请求中下载。可以通过设置True来覆盖此默认行为: TSQLRestClientURI.ForceBlobTransfert:boolean 或者...

  ZGYAxb2wjd2Z   17天前   30   0   0 Delphi

mORMot1.18第七章简单的读写操作 本章描述了典型的数据读写操作。首先,我们将注意力集中在数据上,而不是函数。 读取操作返回一个TID,它是一个32位或64位整数(取决于你的内存模型),反映了表的信息。TID在表中的每一行都是唯一的。 ORM的新手可能会感到惊讶,但通常你不需要创建SQL查询来过滤请求,而是将其留给ORM来处理。 为什么呢?原因有很多。 ORM理解你的数据模型,并且可以提出合理请求。ORM可以强制实施安全要求,而这些要求你很难附加到自己的SQL请求中。ORM可以处理数据库技术中的差异,这些差异你必须了解并且进行硬编码。这些差异使得一个典型的SQL项目很难移植到新的数据库中...

  ZGYAxb2wjd2Z   20天前   28   0   0 Delphi

mORMot1.18第六章概念 mORMot应用程序通过ObjectPascal类型定义数据库结构。该库大量使用运行时类型信息(RTTI),之所以可能实现,是因为Delphi将类型信息存储在可执行文件中。 RTTI可以说明一个变量是整数、双精度数、字符串、数组、特定类型的类等,对ORM(对象关系映射)理解您的数据至关重要。 FreePascal还没有存储RTTI,但是有两种解决方案:一是使用NewPascal(FreePascal的一种变体),它可用于一些平台;另一种方法是在Delphi中生成RTTI并将其移植到FreePascal。有关所有这些选项的最新信息,请参阅在线文档。 继承是mORM...

  ZGYAxb2wjd2Z   20天前   22   0   0 Delphi

mORMot1.18第8章Delphi中的服务器端JavaScript 在mORMot框架中,对JavaScript脚本的支持被称为MonkeyOnRails(版权归PavelMashlyakovsky所有,邮箱:pavel.mash@gmail.com),它借助了Mozilla基金会的SpiderMonkey类。 mORMot允许程序员编写功能强大的应用程序,但如果客户希望自定义应用程序,又该如何呢?通过集成JavaScript(具有即时编译特性的ECMAScript5),业务逻辑或特定于客户的细节(如报告)便可以在JavaScript中进行自定义。 为了使用这些功能,您将需要最新的库文件,...

  ZGYAxb2wjd2Z   20天前   24   0   0 Delphi

mORMot1.18第9章AutoFree 如果你忘记释放一个TSQLQuery对象会发生什么?会丢失一小部分内存。 如果这种情况在服务器上反复发生,你最终会耗尽内存,导致服务停止。 有一个极好的选项可以保证你通过创建一个AutoFree变量来自动释放内存。在Delphi中(不是在FreePascal中),你可以使用这种简单的表示法。 替换 ababy:=TSQLBaby.Create \\替换为 TSQLBaby.AutoFree(ababy); 当变量超出范围时,它将自动被释放。 functionNewMaleBaby(Client:TSQLRest;constName,Address:...

  ZGYAxb2wjd2Z   20天前   26   0   0 Delphi

mORMot1.18第10章连接表 如果数据库包含连接表,那么数据库将变得更加有用。 假设读者已经知道何时以及为何需要单独的表,以及为何要将它们连接起来——许多关于数据库设计的书籍都详细介绍了这一点。我们不会在这里重复这些信息,甚至不会重复其中的任何子集。我们要介绍的是如何做到这一点。 当你定义一个连接结构时,例如: 使用TSQLRecord.CreateJoined(aClient,aID)来获取与所有数据连接的单条记录。 使用带有搜索条件的TSQLRecord.CreateAndFillPrepareJoined(…),并通过WhileFillOnedo循环进行迭代。 mORMot在其...

  ZGYAxb2wjd2Z   20天前   25   0   0 Delphi

mormot2生成和解析json 本文非完全原创,本文部分内容来自博客园,作者:{咏南中间件} 前综合示例,整个示例是建立在mORMot特有的实现模式的基础上,非常用的序列化反序列化,但又有别于字符串拼接,据说效率极高。 unitUnit1; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls, Forms,Dialogs,StdCtrls, mormot.core.perf, mormot.core.Data, mormot.core.text, mormot.core.json, mor...

  ZGYAxb2wjd2Z   24天前   23   0   0 Delphi

mORMot2获取数据集 其实在前面想学习mORMot1部分已经收集了很多关于CRUD的示例了,但感觉总是不通透,不能很好使用,一则mORMot函数命令规则比较不同寻常,另外确实示例太少,其实代码注释倒是讲了很多。 procedureFillPrepare(Table:TOrmTable;aCheckTableName:TOrmCheckTableName=ctnNoCheck);overload; FillPrepare程序是为了从TOrmTable结果中准备获取值。 在准备之后,你可以调用FillRow(1..Table.RowCount)来获取任何一行的值。 或者,你也可以使用以下...

  ZGYAxb2wjd2Z   24天前   22   0   0 Delphi

mORMot2定义多对多关系 处理“hasmany”和“hasmanythrough”关系时,主要涉及到的是多对多关系的数据库设计和管理。以下是对您提供的文本的技术性翻译和解释: 多对多关系是通过一个专门为这种关系创建的表来追踪的,将这个关系转变为两个指向相反方向的一对多关系。 默认情况下,必须创建两个TOrm(即INTEGER类型)字段,命名为“Source”和“Dest”。第一个字段指向源记录(具有TOrmMany发布属性的那个),第二个字段指向目标记录。请注意,根据设计,这些源/目标表是作为TOrm指针存储的,因此在32位系统上限制为32位ID值。 您应该首先创建一个继承自TOrmMa...

  ZGYAxb2wjd2Z   24天前   26   0   0 其他数据库
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~