使用delphi 开发多层应用(四)kbmMW 的安装与配置

更新至kbmmw 5.04.  (2017.12.14)

---------------------

目前的KbmMW 最新版是4.0 beta 版,它支持最新的delphi XE2 ,同时支持win32,win64,mac osx的编译开发。

增加了原生的JSON 的支持(看来JSON 是越来越热了:)),同时提高了http web 的功能,作者已经用最新的KbmMW 替换了

原来使用aspx 的下载网站,其使用kbmMW 的web服务,并使用AJAX 来实现数据列表,经过我的使用,效果还不错。

由于kbmMW 安装不是一次到位的,而且里面配置繁多,为了方便大家使用,下面我就先来说一下kbmMW 的安装与配置。

   1.安装kbmMemTable 专业版

      要让kbmMW能够运行起来,首先要安装kbmMemTable 专业版,kbmMemTable 正如其名,

是一个非常好的内存表控件,可以实现内存表所需的各种基本功能。最新的7.12.10版开始支持win32,win64,mac osx和ios,

同时其支持sql 查询,即可以直接利用sql 来查询和操作内存表。当然了,它也是kbmMW

多层开发中的客户端的查询表的基础,因此要使用kbmMW,就必须先安装它。kbmMemTable

安装起来非常简单,直接运行安装包就可以了。

 

  选择好路径,一路点下一步就可以了。

  安装后,用XE2打开kbmMemRunDXE2Pro.dpk,然后编译,再打开kbmMemDesDXE2Pro.dpk 点install 就可以把

kbmMemTable  安装到XE2 的控件面板里面了。以下为安装后的控件图:

 

  当然要运行kbmMemTable 附带的例子,别忘了在XE2 的LIB路径里面把它的源码路径加上。

2.安装KbmMW 企业版

     安装kbmMW 企业版时,会出现很多个配置选择的页面,由于kbmMW 不是直接到IDE 里面的,为了保证能安装成功,

因此我建议选择配置时,尽量少选,安装完后,如果需要那些配置,再手工选择。以下是数据库配置的选择

 

它支持的数据库访问方式实在是太多了。

以下是数据传输方式的选择

这是加密和压缩方式的选择

选择完了,就可以一路点Next 下去了。剩下的就是在IDE 里面安装包了。

3.kbmMW 的配置

    很多同学可能没有安装程序,只有源代码(呵呵,不要问我要安装程序和源码,希望大家用正版),其实没有

任何问题,我们只需要编辑源码目录里面的kbmMWConfig.inc  文件就可以实现以上的功能。

以下是这个文件的一部分内容

 {$DEFINE   KBMMW_REMOTEDESKTOP_SUPPORT} // 这个选项定义是否支持远程桌面功能
// ===========================================================================
// Performance settings.
// Remove the // from the following lines to enable specific performance
// optimizations
// ===========================================================================
//{$DEFINE KBMMW_OPTIMIZED_MEMORYSTREAM}    // If to use an optimized memory stream handling.

// ===========================================================================

//这些选项定义支持那些传输协议

//要支持Synapse的话,先要下载Synapse,地址在http://synapse.ararat.cz/doku.php

// Transport support.
// Remove the // on the following lines to enable specific transports.
// ===========================================================================

{$DEFINE KBMMW_LOCALTRANSPORT_SUPPORT}             // Client/Server in one app.
{$DEFINE KBMMW_INDYTCPIPTRANSPORT_SUPPORT}         // Indy TCPIP support.
//{$DEFINE KBMMW_DXSOCKTCPIPTRANSPORT_SUPPORT}       // DXSocks v. 3.0 TCPIP support.
{$DEFINE KBMMW_ISAPITRANSPORT_SUPPORT}             // ISAPI support.
//{$DEFINE KBMMW_NEXUSDBTRANSPORT_SUPPORT}           // NexusDB transport support.
{$DEFINE KBMMW_INDYUDPSAFTRANSPORT_SUPPORT}       // Indy UDP messenging support.
//{$DEFINE KBMMW_SYNAPSETCPIPTRANSPORT_SUPPORT}     // Synapse TCPIP support.
//{$DEFINE KBMMW_SYNAPSEUDPSAFTRANSPORT_SUPPORT}    // Synapse UDP messenging support.
{$DEFINE KBMMW_INDYTCPIPSAFTRANSPORT_SUPPORT}     // Indy TCPIP messenging support.
//{$DEFINE KBMMW_STREAMSEC_SSHSAFTRANSPORT_SUPPORT} // StreamSec Tools V3 SSH messenging support.
//{$DEFINE KBMMW_SYNAPSETCPIPSAFTRANSPORT_SUPPORT}  // Synapse TCPIP messenging support.
{$DEFINE KBMMW_RTMPGATEWAY_SUPPORT}               // Adobe RTMP Gateway server transport support.
{$DEFINE KBMMW_AMQPGATEWAY_SUPPORT}               // Advanced Message Queue Protocol 0.92 (AMQP) Gateway client support.
{$DEFINE KBMMW_HTTPSYSTRANSPORT_SUPPORT}          // HTTPSys REST oriented transport support (Windows only).

// -------------------------------------------------------------------
// Specific settings for Indy TCPIP transport stream.
// Enable the entry (by removing the //) for the version of Indy you
// are using. Other entries should be remarked.
// -------------------------------------------------------------------
{$DEFINE KBMMW_USING_INDY_10}
//{$DEFINE KBMMW_SUPPORT_INDY_10_2_3}
//{$DEFINE KBMMW_SUPPORT_INDY_10_5_8}
//{$DEFINE KBMMW_SUPPORT_INDY_10_5_9}
{$DEFINE KBMMW_SUPPORT_INDY_10_6_0}

// -------------------------------------------------------------------
// Specific settings for DXSock TCPIP transport.
// -------------------------------------------------------------------
//{$DEFINE KBMMW_ISAPITRANSPORT_USING_DXSOCK}            // Use DXSock 3.0 for ISAPI support.

// -------------------------------------------------------------------
// Specific settings for NexusDB.
// -------------------------------------------------------------------
//{$DEFINE KBMMW_USING_NEXUSDB2}                        // Use NexusDB v2/V3 support.

// ===========================================================================
// Transport stream support.
// Remove/insert // on the following lines to enable/disable specific transport streams.
// ===========================================================================

{$DEFINE KBMMW_HTTP_TRANSPORTSTREAM_SUPPORT}           // HTTP Tunneling transport stream format.
{$DEFINE KBMMW_ZIPPED_TRANSPORTSTREAM_SUPPORT}         // Compressed binary transport stream format.
{$DEFINE KBMMW_ZIPPED_HTTP_TRANSPORTSTREAM_SUPPORT}    // Compressed HTTP Tunneling transport stream format.
                                                       // The Zipped transportstreams require use of ZLib.
{$DEFINE KBMMW_XML_TRANSPORTSTREAM_SUPPORT}            // XML transport stream format.
{$DEFINE KBMMW_SOAP_TRANSPORTSTREAM_SUPPORT}          // SOAP transport stream format.
{$DEFINE KBMMW_AJAX_TRANSPORTSTREAM_SUPPORT}          // AJAX transport stream format.
{$DEFINE KBMMW_AMF3_TRANSPORTSTREAM_SUPPORT}          // Adobe AMF3 transport stream format.
{$DEFINE KBMMW_REST_TRANSPORTSTREAM_SUPPORT}          // REST smart service transport stream format.
// ===========================================================================
// Database adapters.
// Remove the // on the following lines to enable specific database support.
// ===========================================================================

// 这些选项定义支持那些数据库访问控件,一定要记住,只能定义自己有的数据库控件,没有的一定要注释掉,否则无法安装的
{$DEFINE KBMMW_BDE_SUPPORT}               // BDE Support.
//{$DEFINE KBMMW_FF2_SUPPORT}               // Flashfiler 2 support.
//{$DEFINE KBMMW_DBISAM3_SUPPORT}           // DBISAM 3 support.
//{$DEFINE KBMMW_ADS6_SUPPORT}              // Advantage 6 support.
//{$DEFINE KBMMW_IBX5_SUPPORT}              // Interbase Express 5 support.
//{$DEFINE KBMMW_IBO_SUPPORT}               // Interbase IBO support.
//{$DEFINE KBMMW_ADOX_SUPPORT}              // ADO Express support.
//{$DEFINE KBMMW_DADO_SUPPORT}              // Deer-Soft ADO support.
//{$DEFINE KBMMW_ZEOSMSSQL_SUPPORT}         // Zeos 5 MSSQL support.
//{$DEFINE KBMMW_ZEOSMYSQL_SUPPORT}         // Zeos 5 MYSQL support.
//{$DEFINE KBMMW_ZEOSPROGRESS_SUPPORT}      // Zeos 5 Progress SQL support.
//{$DEFINE KBMMW_ZEOSDB2_SUPPORT}           // Zeos 5 DB2 support.
//{$DEFINE KBMMW_ZEOSORACLE_SUPPORT}        // Zeos 5 Oracle support.
//{$DEFINE KBMMW_ZEOSIB_SUPPORT}            // Zeos 5 Interbase support.
//{$DEFINE KBMMW_ZEOS6_SUPPORT}             // Zeos 6 support.
{$DEFINE KBMMW_MT_SUPPORT}                // kbmMemTable backend support.
//{$DEFINE KBMMW_DBX_SUPPORT}               // dbExpress support.
//{$DEFINE KBMMW_DOA_SUPPORT}               // DOA support.
//{$DEFINE KBMMW_ODAC4_SUPPORT}             // ODAC v4 support.
//{$DEFINE KBMMW_DAO_SUPPORT}               // Diamond Access support.
{$DEFINE KBMMW_X_SUPPORT}                 // kbmMW Cross adapter support.
//{$DEFINE KBMMW_MYSQLDAC_SUPPORT}          // MySQLDAC support.
//{$DEFINE KBMMW_NEXUSDB_SUPPORT}           // NexusDB support.
//{$DEFINE KBMMW_SD_SUPPORT}                // SQLDirect support.
//{$DEFINE KBMMW_DBISAM4_SUPPORT}           // DBISAM 4.01+ support.
//{$DEFINE KBMMW_UIB_SUPPORT}               // Unified Interbase support.
//{$DEFINE KBMMW_FIB_SUPPORT}               // DevRace FIBPlus support.
//{$DEFINE KBMMW_ABS_SUPPORT}               // Absolute Database support.
//{$DEFINE KBMMW_APOLLO_SUPPORT}            // Apollo Database support.
{$DEFINE KBMMW_SDAC3_SUPPORT}             // MSSQL Direct Access Components (crlib).
//{$DEFINE KBMMW_POSTGRESQLDAC_SUPPORT}     // PostgreSQL DAC support.
//{$DEFINE KBMMW_NATIVEDB_SUPPORT}          // NativeDB support.
{$DEFINE KBMMW_ODAC5_SUPPORT}             // ODAC v5 support.
//{$DEFINE KBMMW_EDB_SUPPORT}               // ElevateDB support.
//{$DEFINE KBMMW_ADSDBF_SUPPORT}            // Advantage DBF support.
//{$DEFINE KBMMW_SQLITE_SUPPORT}            // SQLite v. 3.3.1+
{$DEFINE KBMMW_MD_SUPPORT}                // kbmMW Memory Dataset support.
//{$DEFINE KBMMW_ANYDAC_SUPPORT}            // ANYDAC support.
{$DEFINE KBMMW_UNIDAC_SUPPORT}            // UNIDAC support.
{$DEFINE KBMMW_IBDAC_SUPPORT}             // IBDAC support.

// ===========================================================================
// UIB version support.
// Remove/insert // on the following lines to enable specific UIB support.
// Only one must be selected.
// ===========================================================================
//{$DEFINE KBMMW_UIB_JV}                      // UIB JV version.

// ===========================================================================
// Crypt support.
// Remove the // on the following lines to enable specific crypt support.
// ===========================================================================

 
//{$DEFINE KBMMW_CRYPT_SS2}                              // StreamSec II (2.1.8.232+).

// ===========================================================================
// Zip Compression support.
// Remove the // on the following lines to enable specific compression support.
// Only one should be enabled at any time.
// ===========================================================================
//{$DEFINE KBMMW_ZIPPED_USE_FASTZLIB}                    // FastZLib.

// ===========================================================================
// Transport plugin support.
// Remove the // on the following lines to enable transport plugins.
// ===========================================================================
//{$DEFINE KBMMW_TRANSPORTPLUGIN_SS2_TLS}                // StreamSec II TLS/SSL plugin.

// -------------------------------------------------------------------
// Special service support.
// Enable the entries (by removing the //) for the services you want to use.
// -------------------------------------------------------------------
//{$DEFINE KBMMW_JAVA_SERVICE_SUPPORT}                   // Define this if you want to use the custom Java service (LEVEL6+ compilers).
//{$DEFINE KBMMW_ACTIONSCRIPT_SERVICE_SUPPORT}           // Define this if you want to use the custom ActionScript service (LEVEL6+ compilers).
{$DEFINE KBMMW_FASTCGI_SUPPORT}                        // Define this if you want to support FastCGI servers.

// -------------------------------------------------------------------
// ReportBuilder DADE support.
// Enable the entries (by removing the //) for the ReportBuilder settings you want to use.
// -------------------------------------------------------------------
// -------------------------------------------------------------------
//{$DEFINE KBMMW_RBDADE_SUPPORT}                         // ReportBuilder DADE support
{$DEFINE KBMMW_USING_5_1_OLDER_RB}                     // If using RB 5.1 or older.
//{$DEFINE KBMMW_USING_7_NEWER_RB}                       // If using RB 7 or newer. 

定义好以上的各个配置变量,保存文件,就可以在IDE 里面打开kbmMWRunDXE2Ent.dpk ,然后build,再打开kbmMWDesDXE2Ent.dpk

安装这个包,就可以了。当然如果以后需要支持新的配置的话,重新编辑kbmMWConfig.inc,再build 和安装就可以了。

安装完成后,控件面板就会出现以下的控件:

到此为止,kbmMW 就安装成功了,我们后面就可以进行多层之旅了。

时间: 2024-10-25 00:34:56

使用delphi 开发多层应用(四)kbmMW 的安装与配置的相关文章

使用delphi 开发多层应用(二十一)使用XE5 RESTClient 直接访问kbmmw 数据库

     delphi XE5 出来了,增加了android 的开发支持,另外增加了一个RESTClient 来支持访问REST 服务器. 这个功能非常强大,可以直接使用非常多的REST 服务器.同时也可以支持访问kbmmw 的web 服务器, 并完美的通过JSON支持使用kbmmw 的JSON 数据格式.使我们非常方便的在win32,win64,mac os,ios 和android 上访问kbmmw 的数据库.     首先我们建立一个可以返回JSON 的kbmmw web 服务器.这个可以

使用delphi 开发多层应用(三)Delphi常用多层框架介绍

    目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下.如有不对之处,可以拍砖.      1. DELPHI 自身提供的DataSnap       从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在delphi 6 以后, 把这一功能叫Datasnap,并且每个都有很多变化,包括DBExpress 的数据

使用delphi 开发多层应用(十四)使用Basic4android 显示kbmMW server数据

    前面说了basic4android 直接访问kbmMW server 的方法,由于javaclient 不直接支持服务器端数据库的操作, 要显示数据的内容就需要通过JSON 方式来转换.今天就大概介绍一下转换的办法. 首先要在服务器端把数据库转换为JSON ,为了方便,我修改了一下前面的转换过程. function Txalionsrv.datatojson(intablename: string): string; var alljson: ISuperObject; datajson

使用delphi 开发多层应用(二十四)KbmMW 的消息方式和创建WIB节点

    KbmMW 中支持基于UDP的消息广播,也支持TCP/IP hub/spoke 方式,还有 基于UDP或者TCP/IP 的点对点的消息传输. 1.基于UDP的消息广播       根据UDP  的工作原理,在同一个网段里面,可以发布广播包.这样发布者只需要发布一次, 消息就可以被同一网段上的所有订阅者收到.这样大大的降低了网络带宽.这个方式的最大缺点是 无法直接跨越网段,如果要跨越网段,就需要建立一个Gateway. Gateway 就是一个程序,连接两个网段. 它接受第一个网段的广播消

使用delphi 开发多层应用(十三)使用Basic4android 直接访问kbmMW server

 由于目前delphi xe2 还不直接支持Android 的开发,因此kbmMW 客户端的功能也没办法直接在Android 上运行. 由于kbmMW 为了与java 应用程序通讯,在企业版里面提供了一个JavaClinet. 具体文件名为kbmMWClient.jar. 而在basci4android 可以直接使用这个jar. 也就是说通过kbmMW 的javaclient 可以直接访问kbmMW 的服务器. 当然由于客户端没有kbmMemTable的功能,一次只能是访问远程服务过程,无法直接

使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器

      随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提供了C 的客户端,可以使用xcode连接 kbmmw的C 客户端来访问kbmmw 服务器,但是功能有限,而且要熟悉xcode),对于急着想在ios 使用kbmmw 服务的同学,可以先使用kbmmw 的webservice 方式访问kbmmw 服务器.   下面我就介绍以下如何在ios 访

使用delphi 开发多层应用(七)简单的kbmMW多层数据库访问服务

      刚写完几个多层的例子,本来准备再写点其他稍微复杂的例子,很多同学就问数据库访问的方法,既然这样,就先写一下 数据库访问的过程与方法.kbmMW 支持很多数据库访问方式和控件,前面在安装时已经说过了.由于delphi 已经在d7 以后 不再推荐使用其传统的数据库方式BDE了,尤其是在delphi XE2 由于支持win64, 已经不支持使用BDE 了,为了演示方便,本文 后台数据库选择使用完全免费的firebird.firebird 是一个非常短小精悍的关系数据库,支持存储过程.触发器

使用delphi 开发多层应用(十一)使用kbmMW 开发webserver

用kbmMW 开发webserver也是非常方便的. 还是以前面的简单服务器为基础,我们先要通过kbmMW的service wizard 来建立web 服务. 如图,先选择web server service 点下一步,出现选择文件目录的界面 我们这里用webfiles 相对路径,就是在网页文件放到可执行文件目录下的webfiles 目录. 点下一步,出现输入服务名的界面,注意这里的服务名必须是HTTPSERVICE. 后面的基本上就和其他服务类似了,可以一路点下去了.然后就生成对应的服务器代码

使用delphi 开发多层应用(九)客户端使用事务更新多个表数据到kbmMW服务器

  上次说明了客户端如何把变化的数据更新到服务器端,但是在实际应用中,往往是要同时更新若干个表, 为了保证逻辑上一致,这些表的操作要么都一次成功,要么全部失败,这就需要使用事务处理.我们今天 就来说一下,怎么在kbmMW中实现事务处理.同时也顺便讲一下kbmMW 里面命名查询(named query)的 使用,首先我们打开服务器端,在数据服务上增加一个TkbmMWIBDACQuery,如图 设置它的connctionpool 为Form1.kbmMWIBDACConnectionPool1 re