QF中间件使用说明

 

       QF中间件是在2020年春节期间出现新型冠状病毒感染的肺炎疫情不敢外出,闲来无事编写的。编程是业余爱好,平时编程只会拖控件,中间件可能存在未知Bug,这个版本也只实现了简单的增删改查功能,与已有的中间件功能差距巨大,请高手勿喷!

QF中间件使用FDmemTable、mORMot和参考咏南开源mORMot中间件的基础上开发而成,QFDataSet包含QFRest、QFTable和QFQuery这3个控件)方便使用,QF中间件已测试MSSQL2000、postgresq、MySQL和SQLite等数据库,三层应用环境使用正常,ORACLE数据库没环境测试,MSSQL、SQLite和ORACLE使用mORMot自带数据引擎,其中SQLite直接将引擎编译到服务端程序,MySQL和POSTGESQL使用免费开源控件zeosdbo-7.2.4)。

QF中间件同时解决了盒子论坛提出使用mORMot时遇到的若干问题,利用本中间件可以简单快捷编写三层应用。

:http://bbs.2ccc.com/topic.asp?topicid=559565

一、QF中间件服务端设置

QF中间件服务端采用windows的services方式,安装后以services运行。

将QFMg.exe和QFSvr.exe这2个文件拷贝到服务器指定的文件夹,运行QFMg,exe配置相关参数。

1.配置数据库设置:选择数据库类型、数据库IP、数据库名称、用户和密码

POSTGESQL:需要将libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、msvcr120.dll和ssleay32.dll放到QFSvr.exe文件夹中。
   MSSQL:不需要单独数据库驱动;
   MYSQL:将libmysql.dll放到QFSvr.exe文件夹中;   
   SQLite:已将引擎嵌入QFSvr.exe
   ORACLE:未测试。

2.设置服务器参数

3.服务设置:安装QF中间件服务,安装成功后启动QF中间件服务。

二、QFDataSet控件的使用说明

1、QFRest控件

1).QFRest.IP:服务器IP

2).QFRest.Port:服务器端口(默认2006)

3).QFRest.User:认证名称

4).QFRest.Passwords:认证密码

5).QFRest.Connect:连接服务器

6).QFRest.DisConnect:断开服务器连接

2、QFTable控件

1).QFTable.Rest:远程连接控件

2).QFTable.IndexFieldNames:更新时的主键字段

3).QFTable.NoField:更新时不更新的字段列表,多个字段时用逗号分割

4).QFTable.TableName:表名称

5).QFTable.ApplyUpdates:当需要保存到远端时用。

6).QFTable.PageSize:每页的记录数,默认为100

7).QFTable.PageNo:当前页

8).QFTable.PageIndexMax:当前表最大页数

9).QFTable.Open:打开表时,根据PageNum和PangeIndex调用指定记录

QFTable1.PageSize := 100;

QFTable1.PageNo := 1;//改变这个值读取指定页的记录

QFTable1.Open;

10).QFTable.Locate(const AKeyFields: String; const AKeyValues: Variant; AOptions: TLocateOption):Boolean;

例子:

QFTable1.Locate('BGBH,ID',VarArrayOf(['HYA2018-25318',17]), loPartialKey);

11).打开前一页例子:

QFTable1.PageSize := PageNum;

QFTable1.PageIndex := pn-1;//改变这个值读取指定页的记录

QFTable1.Open;

12).打开下一页例子:

QFTable1.PageSize := PageNum;

QFTable1.PageNo := pn+1;//改变这个值读取指定页的记录

QFTable1.Open;

3、QFQuery控件

1).QFQuery.Rest:远程连接控件

2).QFQuery.SQL:设置SQL语句

3).QFQuery.Open:执行QFQuery.SQL的Sql语句

4).QFQuery.Open(SQL:string):执行SQL

5).QFQuery.ExecSQL

QFQuery例子:

QFQuery1.SQL := Edit2.Text;

QFQuery1.Open;

DataSource1.DataSet := QFQuery1;

三、Delphi开发环境

Library paths加入mORMot、Components、zeosdbo-7.2.4\src、zeosdbo-7.2.4\src\core、zeosdbo-7.2.4\src\core\dbc、zeosdbo-7.2.4\src\core\parsesql、zeosdbo-7.2.4\src\plain,其中mORMot和zeosdbo-7.2.4的文件夹是精简后所需的全部文件

Demo的界面:

备注:Demo服务端放在5M带宽的天翼云主机。

2020-01-30

QF中间件的更多相关文章

  1. Linux 远程登录——(九)

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...

  2. django的中间件

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2EAAAGUCAIAAAAzrr3rAAAgAElEQVR4nOy9d5wcx3kmzAXl80m6zy

  3. CBV加装饰器解决登录注册问题和 <<中间件>>

    文本目录 CBV加装饰器解决登录注册问题 一:什么是中间件 二:中间件有什么用 三:自定义中间件 四:中间件应用场景 五:SCRF TOKEN跨站请求伪造 六: 其他操作 CBV加装饰器解决登录注册问 ...

  4. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  5. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  6. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  7. ASP.NET Core 中间件之压缩、缓存

    前言 今天给大家介绍一下在 ASP.NET Core 日常开发中用的比较多的两个中间件,它们都是出自于微软的 ASP.NET 团队,他们分别是 Microsoft.AspNetCore.Respons ...

  8. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  9. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

随机推荐

  1. MyBatis Dao层的编写

    传统的dao层编写 以前编写dao层,先新建一个包com.chy.dao,再写接口StudentDao: public interface StudentDao { public void inser ...

  2. DotNet中的继承,剖析面向对象中继承的意义

    继承是面向对象程序设计不可缺少的机制,有了继承这个东西,可以提高代码的重用,提高代码的效率,减轻代码员的负担. 面向对象三大特性:封装.继承.多态是相辅相成的.封装为了继承,限制了父类的哪些成员被子类 ...

  3. <BitMap>大名鼎鼎的bitmap算法

    BitMap 抛砖引玉 首先,我们思考一个问题:如何在3亿个整数(0~2亿)中判断某一个数是否存在?现在只有一台机器,内存只有500M 这个问题像不像我们之前提到过的一个在0-10个数中,判断某一个数 ...

  4. 蓝桥杯 2n皇后问题

    题意: 问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一 ...

  5. vSphere HA 原理与配置

    内容预览: 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控 ...

  6. Day7 - D - The Euler function HDU - 2824

    The Euler function phi is an important kind of function in number theory, (n) represents the amount ...

  7. python集成开发环境Anaconda的安装

    参考博文: anaconda在Linux下的安装 Linux下anaconda3的安装 Anaconda的安装.启用及停用的步骤 Python学习之Anaconda的使用及配置方法 Anaconda ...

  8. JDK8中的HashMap实现原理及源码分析

    大纲 一.什么是Hash?什么是HashMap? 二.HashMap的内部实现机制 1.HashMap基本元素 ①DEFAULT_INITIAL_CAPACITY&MAXIMUM_CAPACI ...

  9. eshop7-mysql

    1. Mysql 安装 执行 yum -y install mysql-server 注意:(1)是否使用sudo 权限执行请根据您具体环境来决定 (2)检查是否已经安装mysql-server rp ...

  10. 初学者的困惑:OOP与一般编程的区别

    *在写<程序猿的思维修炼>随笔中,我们大概猜想到了,OOP的思想更趋于模块化,更独立,因此称为一个个对象,本次随笔将对OOP和一般编程的区别有更详细的解释 面向对象编程的含义: 面向对象编 ...