咏南LINUX中间件
咏南LINUX中间件
什么是跨平台?
DELPHI跨平台已经不是停留在理论,而是可以实用了。
同一套中间件既能在WINDOWS服务器上面部署,又可以在LINUX服务器上面部署。
而做到这一切,只需要一套源代码,这完全得益于DELPHI 10.2全新的跨平台编译器。
想想,你的同一个中间件同时可以在WINDOWS和LINUX服务器上部署运行,这是一件多么激动人心的事情啊!
笔者不免心情澎湃!同时支持TCP/IP、HTTP通信协议。
LINUX 支持:
- Ubuntu Server (Ubuntu 16.04 LTS)
- RedHat Enterprise Linux (版本 7)
CENTOS 7 服务器上运行中间件:

中间件详情日志:

WINDOWS客户端访问CENTOS7上的中间件并返回查询数据:

同一份源代码只需要编译成不同的目标平台即可:

WINDOWS服务器上部署运行中间件:

支持REST调用

测试客户端代码:
// cxg 2017-9-16 跨平台中间件的客户端
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.SqlExpr,
Data.DBXDataSnap, Data.DBXCommon, IPPeerClient, Unit2, Vcl.Grids, Vcl.DBGrids,
Vcl.StdCtrls, FireDAC.Stan.Def, FireDAC.Stan.StorageJSON, FireDAC.Stan.StorageBin,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet,
FireDAC.Comp.Client, Vcl.ExtCtrls, Data.DbxHTTPLayer;
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
FDMemTable1: TFDMemTable;
btnsave: TButton;
btnappend: TButton;
btndel: TButton;
btnquery: TButton;
btnsp: TButton;
procedure FormCreate(Sender: TObject);
procedure btnsaveClick(Sender: TObject);
procedure btnappendClick(Sender: TObject);
procedure btndelClick(Sender: TObject);
procedure btnqueryClick(Sender: TObject);
procedure btnspClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
ujson;
procedure TForm1.btnsaveClick(Sender: TObject);
// 保存数据
var
c: TServerMethods1Client;
sResult: string;
begin
if FDMemTable1.State in [dsInsert, dsEdit] then
FDMemTable1.Post;
if FDMemTable1.ChangeCount = 0 then
Exit;
SQLConnection1.Close;
SQLConnection1.Open;
c := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
sResult := c.ExecuteSQL(ujson.deltaToJSON(FDMemTable1, 't1', 'c1', ''));
if Pos('true', sResult) > 0 then
begin
FDMemTable1.MergeChangeLog;
ShowMessage('save ok');
end
else
begin
FDMemTable1.Cancel;
ShowMessage('save fail');
end;
finally
c.Free;
SQLConnection1.Close;
end;
end;
procedure TForm1.btnspClick(Sender: TObject);
// 执行存储过程
//CREATE PROCEDURE sp2(in a varchar(5))
//BEGIN
//SELECT * FROM t1 where c1=a;
//END;
var
c: TServerMethods1Client;
begin
SQLConnection1.Close;
SQLConnection1.Open;
c := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
ujson.jsonToDB(c.SPOpen('sp2', '{"a":"1"}'), FDMemTable1);
finally
c.Free;
SQLConnection1.Close;
end;
end;
procedure TForm1.btnqueryClick(Sender: TObject);
// 查询数据
var
c: TServerMethods1Client;
begin
SQLConnection1.Close;
SQLConnection1.Open;
c := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
ujson.jsonToDB(c.QuerySQL('select * from t1'), FDMemTable1);
FDMemTable1.MergeChangeLog;
finally
c.Free;
SQLConnection1.Close;
end;
end;
procedure TForm1.btnappendClick(Sender: TObject);
// 新增
begin
FDMemTable1.Append;
end;
procedure TForm1.btndelClick(Sender: TObject);
// 删除数据
var
c: TServerMethods1Client;
sResult: string;
begin
if not FDMemTable1.IsEmpty then
begin
FDMemTable1.Delete; // del
SQLConnection1.Close;
SQLConnection1.Open;
c := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
try
sResult := c.ExecuteSQL(ujson.deltaToJSON(FDMemTable1, 't1', 'c1', ''));
if Pos('true', sResult) > 0 then
begin
FDMemTable1.MergeChangeLog;
ShowMessage('del ok');
end
else
begin
FDMemTable1.Cancel;
ShowMessage('del fail');
end;
finally
c.Free;
SQLConnection1.Close;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FDMemTable1.CachedUpdates := True; // 否则不能保存
end;
end.
咏南LINUX中间件的更多相关文章
- NGINX实现咏南跨平台中间件集群
NGINX实现咏南跨平台中间件集群 首先要开启咏南LINUX中间件. 1)编辑usr/local/nginx/conf/nginx.conf #user nobody;worker_processe ...
- 咏南跨平台中间件支持LINUX和WINDOWS插件架构
咏南跨平台中间件支持LINUX和WINDOWS插件架构
- 咏南IOCP中间件支持海量并发方案(集群)
咏南IOCP中间件支持海量并发方案(集群) 支持D7~XE10.1.1开发 支持负载均衡,自动故障转移 可以在不停机的状态下,根据负载情况灵活增加中间件机器 中间件使用IOCP通信,单中间件支持并发数 ...
- 咏南IOCP中间件
咏南IOCP中间件 特大好消息,咏南中间件系列新增加——咏南IOCP中间件.咏南IOCP中间件完全兼容咏南DATASNAP中间件的远程方法接口. 中间件DELPHI7~DELPHI XE10.1.1都 ...
- 咏南DATASNAP中间件提供免费使用了
咏南DATASNAP中间件提供免费使用了. 百度网盘分享: 链接: http://pan.baidu.com/s/1c06Ivp2 密码: dhhm
- 咏南DELPHI7中间件+开发框架
咏南DELPHI7中间件+开发框架 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmain.exe ...
- 咏南ISAPI中间件
咏南ISAPI中间件 只支持WINDOWS服务器部署,中间件作为IIS的ISAPI插件部署. 基于WINDOWS的IIS,使用HTTP.SYS通讯,不依赖任何三方控件. 可以基于IIS HTTPS. ...
- 咏南Mormot中间件接口
咏南Mormot中间件接口 只使用了MORMOT的HTTPS.SYS作为通讯,数据引擎使用FIREDAC,数据序列/还原是自行封装. 客户端支持FDMemeTable和ClientDataSet数据集 ...
- 咏南MORMOT中间件免费开源
咏南MORMOT中间件免费开源 源码放QQ群(92449782)共享文件里面
随机推荐
- 黄聪:WIN7下回收站不小心删除的文件怎么恢复,免费数据恢复软件下载
上网找了半天,大多数是收费的,总算找到一款免费的,已经帮我恢复了数据了,在此分享给大家. 注意:只能恢复7天内的,而且数据误删了,就尽量不要再修改你那个盘符的数据了,免得覆盖了! 我用的数据恢复软件R ...
- VS2015 安装包
http://download.microsoft.com/download/D/C/9/DC99C86F-5E93-4F77-AF7A-05AAC9BD8B72/vs2015.1.ent_chs.i ...
- nginx 点播mp4方法
1.配置文件 配置文件中rmtp部分: application vod { play html; } 配置文件中http部分: location ~ .mp4$ { root html; mp4; l ...
- 学习笔记之Tips for Macbook
写给Mac新手的入门指南 - 威锋网 https://mp.weixin.qq.com/s/pqmqGZhNwevx57KeLnzZmg https://bbs.feng.com/read-htm-t ...
- Chrome JS断点调试技巧
Chrome调试折腾记_(2)JS断点调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 技巧三:查看断点内部的作用范围[很实用] 技巧4:监听事件断点 技巧5:DOM及 XHR监听跳 ...
- zabbix触发器函数 count
转摘至梅总文章 一直没用过这个函数,今天研究了下,确实很有用(用过的忽略): 之前很多功能都是用max,min,avg曲线实现的,其实用count最合理(如典典刚用的高防持续N次ping超时). ...
- 7_bootstap之综合案例
13.综合案例 13.1.案例需求 要求:页面顶部的三部分在PC屏幕上显示为一行,在移动设备屏幕上显示为一部分一行: 导航条在大屏幕展示全部内容,在移动设备上需要将内容能够折叠/展开: 用户名/密码/ ...
- 温故而知新-XML和WEB服务器
1 xml除了空元素外都是有开始标记和结束标记的 2 XML可以设置自己的标记
- JS 根据url 下载
一. window.location="htpp://www.baidu.com/test.rar"; 二. var $form = $('<form method=&quo ...
- Apache Sqoop 结构化、非结构化数据转换工具
简介: Apache Sqoop 是一种用于 Apache Hadoop 与关系型数据库之间结构化.非结构化数据转换的工具. 一.安装 MySQL.导入测试数据 1.文档链接:http://www.c ...