刷新
mORMot 1.18 第23章 使用纯SQL

mORMot 1.18 第23章 使用纯SQL 有时你可能不想使用ORM,或者由于现有且不可更改的数据库与ORM不兼容而无法使用它。在这些情况下,你仍然可以依靠mORMot的其他功能,同时使用纯SQL。 你可以发出纯SQL命令并以JSON格式获取数据。下面的示例展示了如何使用快速且开源的Zeos数据 ...

mORMot 1.18 第19章 安全性

mORMot 1.18 第19章 安全性 第19章 安全性 在企业数据库设计中,安全性是必不可少的。mORMot已为此做好准备。 19.1 HTTP/HTTPS 您可以在四个受支持的模式中的任何一个中进行选择,它们可以组合使用。 Pascal类 描述 TSQLRestServerAuthentica ...

mORMot 1.18 第18章 使用REST/JSON的客户端/服务器

mORMot 1.18 第十八章 使用REST/JSON的客户端/服务器 JSON是一种被多种语言和众多领先公司接受的标准。正如我们在JSON章节中所解释的,它是标准化的,紧凑且解析速度快,同时当加入非关键性空格时,也易于人类阅读。这些事实使其成为数据交换最受欢迎的格式之一。 JSON支持六种数据类 ...

mORMot 1.18 第13章 动态数组

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

mORMot 1.18 第12章 Blobs(大二进制对象)

mORMot 1.18 第12章 Blobs(大二进制对象) 有些情况下,mORMot会以BLOBs(大二进制对象)的形式保存和检索数据。 TSQLRawBlob属性用于存储像图片和文件这样的二进制数据。 以TDynArray.SaveTo二进制格式存储的动态数组。 明确注册为BLOBs的记录。 当 ...

mORMot 1.18 第11章 JSON - JavaScript对象表示法

mORMot 1.18 第11章 JSON - JavaScript对象表示法 JSON是一种用于指定数据结构和数组的行业标准格式。(它是ECMA 404的一个子集。)虽然它最初是在JavaScript语言中定义的,但由于以下原因,它已成为一种流行的互联网格式,用于指定和交换数据: 它很紧凑,使用的 ...

mORMot 1.18 第10章 连接表

mORMot 1.18 第10章 连接表 如果数据库包含连接表,那么数据库将变得更加有用。 假设读者已经知道何时以及为何需要单独的表,以及为何要将它们连接起来——许多关于数据库设计的书籍都详细介绍了这一点。我们不会在这里重复这些信息,甚至不会重复其中的任何子集。我们要介绍的是如何做到这一点。 当你定 ...

mORMot 1.18 第09章 AutoFree

mORMot 1.18 第9章 AutoFree 如果你忘记释放一个 TSQLQuery对象会发生什么?会丢失一小部分内存。 如果这种情况在服务器上反复发生,你最终会耗尽内存,导致服务停止。 有一个极好的选项可以保证你通过创建一个 AutoFree变量来自动释放内存。在Delphi中(不是在Free ...

mORMot 1.18 第06章 概念

mORMot 1.18 第六章 概念 mORMot 应用程序通过 Object Pascal 类型定义数据库结构。该库大量使用运行时类型信息 (RTTI),之所以可能实现,是因为 Delphi 将类型信息存储在可执行文件中。 RTTI 可以说明一个变量是整数、双精度数、字符串、数组、特定类型的类等, ...

mORMot 1.18 第07章 简单的读写操作

mORMot 1.18 第七章 简单的读写操作 本章描述了典型的数据读写操作。首先,我们将注意力集中在数据上,而不是函数。 读取操作返回一个TID,它是一个32位或64位整数(取决于你的内存模型),反映了表的信息。TID在表中的每一行都是唯一的。 ORM的新手可能会感到惊讶,但通常你不需要创建SQL ...

mORMot2 获取数据集1

mORMot2 获取数据集 其实在前面想学习mORMot1部分已经收集了很多关于CRUD的示例了,但感觉总是不通透,不能很好使用,一则mORMot函数命令规则比较不同寻常,另外确实示例太少,其实代码注释倒是讲了很多。 procedure FillPrepare(Table: TOrmTable; a ...

mORMot2 生成和解析 JSON

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

mORMot2 的 Logger日志

mORMot2 的 Logger日志 Logger 很多框架都有,简单的实现就是一个队列加一根线,有复杂的,QDAC里面涉及的就很巧妙,本来QDAC就是个线程框架,所以也有先天优势。 在mORMot 里面自然也有日志实现,它设计的比较麻烦。 mORMot 的Logger 初始化 begin TSyn ...

Delphi 实现刘谦春晚魔术

看了博友的C# 实现刘谦春晚魔术很好,改成了delphi版的。 1 program Project1; 2 3 {$APPTYPE CONSOLE} 4 {$R *.res} 5 6 uses 7 System.SysUtils, 8 System.Classes; 9 10 var 11 list ...

delphi redisclient测试

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, V ...

delphi JSON序列化(四)

涉及的重要类 REST.Json,REST.JsonReflect,REST.Json.Interceptors, REST.Json.Types单元中。 一、TJson类 最简单的一个类,提供了JSON -> OBJECT和OBJECT -> JSON几个方法,方法有TJsonOptions参数, ...

mormot2 笔记(二) Http服务的简单搭建

mormot2框架中有个THttpServer类,它有一个Router属性,定义如下: property Router: TUriRouter read fRoute; Router是添加路由的入口点,它有和http协议对应的get, post, put, delete等方法,这些方法可以添加路由, ...

使用Delphi编写DLL劫持内存补丁

在有些破解程序时,不能暴力修改程序,修改后,程序就不能正常运行,因为很多程序启动时有自我的校验,但是当程序加载到内存后,在内存中修改相应的地方就可以达到破解的效果。那么怎样在不破坏程序的前提下,达到修改程序呢? 当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分 ...