1.多数据集的读取

A.取数SQL的配置,借用TStringList进行存储多个不同的取数SQL

B.DBA取数:  DBA.ReadMultipleDataSet(TStringList)

C.结果集的提取 DBA.GetResultDataSet(序位,FCDS); //序位从0开始,对应于TStringList的sql序位;

D.结果集的清理: DBA.ClearResultDataSets;

2.多数据集的提交

A.提交前的无效信息清理:  DBA.ClearWriteDataSets

B.添加需要提交的数据集:  DBA.AddWriteDataSet(表名,清理SQL,要提交的CDS);

C.写库: DBA.WriteMultipleDataSets;

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

经测:在多数据集提交时并未发现有任何地方标识关键字段值?

疑问:难道是在提交的过程中,通过表名取表结构,然后再来识别关键字?

那如果数据表未标识关键字,只是用户标识某个字段为关键字,如何执行?

3.Blob字段数据的处理

A.对于Blob字段内容->比如图片,文件等内容;先将其转为内存流后再做参数处理

FImgStream:=TMemoryStream.Create;

FImgStream.LoadFromFile(xxx); 或者其它的内存加载方式

B.借用DBA进行SQL处理

DBA.ParamParcel.Clear;

DBA.ParamParcel.PutStreamGoods(':XX',Stream);   //参数配置,前面加冒号,后面为形参   

//形参与字段名无实际关系,可一致,也可不一致

DBA.ExecuteSQL(SQL语句,是否有返回值,是否事务处理,返回接收变量);

** 在SQL语句中,配置的形参应该与Parcel中的形参一致

C.从DBA中取Blob字段信息

FImgStream:=TMemoryStream.Create;

TBlobField(CDS.fieldbyname('xx')).SaveToStream(FImgStream);     //将内容存到内存流中后,剩下的事情该怎么处理就怎么处理了

4.长耗时服务插件的回调业务

A.服务插件端:

a.创建接口对象:  Messager:=TAPIMessager.Create(InParcel);

b.从入口参数中提取回调对象来源信息==>需要客户端配合传入

TargetNodeId:=InParcel.GetAnsiStringGoods('ThisNodeId');

ConnectionId:=InParcel.GetInt64Goods('FromConnectionId');

c.实际业务处理(若业务中有客户端相关参数,直接从入参对象中提取)

d.回调结果返回

i: 创建返回参数,与常规插件一样,以QBParcel进行返回

ii:利用接口对象发送回调消息

Messager.CallbackToConnection(TargetNodeID,ConnectionID,返回参数);

iii:返回参数的释放 QBParcel.Free;

接口对象的释放 FreeAndNil(Messager);

B.客户端业务处理

a.参数配置:依据实际业务需要,配置传入参数

b.通过 TDllPlugin.AsyncRPC(插件名,插件访问密码,传入参数) 调用长耗时服务

c.提交后,业务处理完成.至于处理多久,处理完成并返回后的处理,则将由消息对象处理了;    

----------   

d.服务端返回长耗时业务后,回调的内容将由 TMsgReceiver 接收

** 接收处理事件为: OnCallBackMessage(MsgParcel:TQBParcel;DllFileName:String);

** 参数分别为服务端插件返回的参数及服务插件文件名

5.本地化业务插件处理

A: 客户端业务插件的调用,主要使用的是 TQBClientModule进行调用;

B: 参数传递 TQBClientModule.InPutParcel 进行处理,处理方法与常规情况下的QBParcel一致

C: 本地化插件调用: TQBClientModule.ExecuteTask('业务插件文件名称.dll');

D: 返回结果的提取与处理: 使用 TQBClientModule.OutPutParcel;

QB资料学习.01的更多相关文章

  1. spring学习(01)之IOC

    spring学习(01)之IOC IOC:控制反转——Spring通过一种称作控制反转(IOC)的技术促进了低耦合.当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

  4. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  5. Java学习01

    Java学习01 第一章 1.JRE与JDK JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者; J ...

  6. ThinkPhp学习01

    原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板 ...

  7. 【iScroll源码学习01】准备阶段 - 叶小钗

    [iScroll源码学习01]准备阶段 - 叶小钗 时间 2013-12-29 18:41:00 博客园-原创精华区 原文  http://www.cnblogs.com/yexiaochai/p/3 ...

  8. JVM学习01:内存结构

    JVM学习01:内存结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 内存结构知识要点Xmind梳理 案例分析 分析1 package com.h ...

  9. webservice学习01:wsdl文档结构

    webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...

随机推荐

  1. Docker 在6.4上安装

      1 在 CentOS 6.4 上安装 docker docker当前官方只支持Ubuntu,所以在 CentOS 安装Docker比较麻烦(Issue #172). docker官方文档说要求Li ...

  2. HTML报表日期格式不对 导致报错ORA-01861: 文字与格式字符串不匹配

    PROCEDURE MAIN(ERRBUF OUT VARCHAR2, RETCODE OUT VARCHAR2, P_CUSTOMER_ID IN VARCHAR2, P_PERSON_ID IN ...

  3. Using MSBuild to publish a VS 2012 SSDT .sqlproj database project

    http://blog.danskingdom.com/using-msbuild-to-publish-a-vs-2012-ssdt-sqlproj-database-project-the-sam ...

  4. 自定义view imageviw

    新建一个类继承imageview package com.exaple.myselfview; import android.content.Context; import android.graph ...

  5. Dynamics AX 2012 R3 Demo 安装与配置 - 配置安装环境 (Step 1)

    AX 2012 R3 发布后,Reinhard一直想体验一把,可是Reinhard所在的公司暂时不会升级到R3版本.这不,Reinhard就打算在个人电脑上安装下,可是安装的过程中,遇到了很多问题,R ...

  6. zigbee学习之路(四):按键控制(中断方式)

    一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...

  7. 【iOS】UIKit框架 学习笔记

    ... ...

  8. [问题2014S09] 复旦高等代数II(13级)每周一题(第九教学周)

    [问题2014S09]  证明: \(n\) 阶方阵 \(A\) 与所有的 \(A^m\,(m\geq 1)\) 都相似的充分必要条件是 \(A\) 的 Jordan 标准型为 \[\mathrm{d ...

  9. jQuery选择器的优化选择

    jQuery选择器的优化选择 1.1 属性选择器 var $div=$("[id]"); 选中拥有该属性的元素 var $div=$("[id=div]");  ...

  10. GZFramwork快速开发框架演练之会员系统(三)添加会员等级管理

    1.设计会员等级表结构 创建语句: from sysobjects where id = object_id('tb_MembersLevel') and type = 'U') drop table ...