QB资料学习.01

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;

时间: 2024-10-25 23:35:32

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

看网上资料学习了解注入

随着B/S模式应用开发的发展,使用该模式编写程序的程序员越来越来越多,但是由于程序员的水平参差 不齐,相当大一部分应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据程序返回的结果 ,获得某些他想要知的数据,这个就是所谓的SQLinjection,即sql注入式攻击. 脚本注入攻击者把SQL命令插入到WEB表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL 命令,在某些表单中,用户输入的内容直接用来构造动态的SQL命令,或作为存储过程的输入参数,从而 获取想得到的密码或其它服务

HTML5 学习01

HTML的英语意思是:Hypertext Marked Language,即超文本标记语言,是一种用来制作超文本文档的简单标记语言. 所谓超文本,是因为它可以加入图片.声音.动画.影视等内容,事实上每一个 HTML 文档都是一种静态的网页文件,这个文件里面包含了 HTML 指令代码,这些指令代码并不是一种程序语言,它只是一种排版网页中资料显示位置的标记结构语言. ┣ 通过 HTML 可以表现出丰富多彩的设计风格: 图片调用:<IMG SRC="文件名"> 文字格式: <

OSX学习01之更新头像

前不久在官网上守株待兔,买了一个官翻版865,其实最想买294的,可是米不足啊——所以,在同时下了865和293的订单,并纠结了一天后,确定了865,剩余的钱够一个Mac mini了,如果不买也可以日后买iMac. 相关的内容等会儿写另一帖,废话就不说了. 拆机后简单的设置下账户信息,但是没觉得账户图片好看,又没发现又什么方式设置账户图片,纠结了很久. 本机没有什么图片,这时候可以先把图片下载下来再说. 进入系统偏好设置-->用户与群组-->当前用户,点击现有头像-->最近使用-->

概率论快速学习01:计数

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

ThinkPhp学习01

原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板)        工作:负责前台页面显示  C - Controller 控制器(模块) 工作:描述功能 框架二.ThinkPHP的获取            http://www.thinkphp.cn三.ThinkPHP核心文件介绍      ├─ThinkPHP.php     框架入口文件 

Scala学习01 环境安装

Scala是一门运行在jvm上的多范式语言,作为一个java程序员,使用Scala来写写程序,既不用担心会没有java强大的库支持,又能快速地写出简短强悍的代码,除此之外scala还为我们提供了强大的并发支持,Let's love it! 安装 下面来看看如何安装它(在此之前,确保已经安装好了jdk,我使用的jdk1.7). 我们可以通过Scala的官网(http://www.scala-lang.org/download/)来下载Scala.我使用的版本是2.11.1. 将安装包下载在本地之后

pyqt listview基础学习01

from decimal import * from PyQt4.QtGui import * from PyQt4.Qt import * from PyQt4.QtCore import * import sys class Example(QWidget): def __init__(self,args=None): super(Example, self).__init__(args) list_data=[1,2,3,4] lm=MyListMode(list_data,self) s

HTML坦克大战学习01

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <canvas id="tankMap" width="400px" height="300px" style="background

Node.Js学习01: Module System 以及一些常用Node Module

Node.Js学习就按照这本书的流程来. 在第7章结束与第10章结束时分别自己出一个小项目练练手.Node.Js的入门学习计划是这样. 目录:, QQ:1045642972 欢迎来索书以及讨论Node.Js. Node.Js Demo Node.Js官网提供了一个最基本的Demo Code: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type':