|
我们的WebService 做成了,调用也成功了 .net 调用 .net 的东西很容易,但是我个人很不喜欢微软。写WebService 有很多可以实现 java delphi ruby 等..客户端也是。根据实际情况,选择即可!但是在桌面客户端的话,我比较偏向与Delphi.桌面客户端谁也不愿意背着个.net freamwork 到处跑!接下来玩点有意思的,使用.net 的Web Service 并用Delphi 来实现Web Service 的调用!现在我想使用 Delphi 来调用WebService 又该如何了? Delphi 调用WEbService 的方法倒是简单,但是用delphi 调用 .net 返回的数据集又如何? 随我来,我来揭开谜底。
开启Delphi 新建一个VCL application,再添加一个WSDL importer
填写如 URL 还是和刚才 wsdl.exe 点击 Finish
finish 结束 在窗体上添加 如下控件TclientDataSet、THTTPRIO 、TXMLTransformProvider TdataSource 、TDBGrid
设置属性 DBGrid1 DataSource 指向DataSource1 DataSource1 DataSet 指向ClientDataSet1 ClientDataSet1 providername 指向XMLTransformProvider1 HTTPRIO1 Port 设置 ServiceSoap Service 设置Service WSDLLOcation 设置 代码为 uses Service; //使用刚才生成的接口 procedure TForm1.BitBtn1Click(Sender: TObject); var IntRes:Integer; StrRes:String; begin (HTTPRIO1 as ServiceSoap).GetDataSet('Select * From Customers') { //注释了,几个webService 的测试函数 IntRes:=(HTTPRIO1 as ServiceSoap).Add(1,2); StrRes:=(HTTPRIO1 as ServiceSoap).HelloWorld('Cool'); SHowMessage(IntToStr(IntRes)); ShowMessage(StrRes); } end; procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string; SOAPResponse: TStream); var XMLDoc: IXMLDocument; begin SOAPResponse.Position := 0; //读入soap 到memo1中 Memo1.Lines.LoadFromStream(SOAPResponse); SOAPResponse.Position := 0; end; 运行一下,获取解析出来XML数据
把Memo1 内容复制出来保存为XML 文件,这里保存为RawData.xml 文件,OK 使用Delphi 的XML Mapper 映射XML
选择好列以后,选择 File -> Save ->Transformation, 注意这里有个bug还是什么 Delphi 不知道SOAP 的名称空间 所以预览数据还是空的!我们一下手工修复一下, 我用的是Delphi 10 不知道Delphi 2009 如何?使用记事本打开刚才生成的ToDp.xtr 文件第一行位置 <SelectEach dest="DATAPACKET/ROWDATA/ROW" from="/soap:Envelope/soap:Body/...."> [修改为] <SelectEach dest="DATAPACKET/ROWDATA/ROW" from="/Envelope/soap:Body/...."> OK! 接下来,回到 Delphi TransformRead.TransformationFile D:/My Documents/Borland Studio Projects/ToDp.xtr 现在还要修改代码,直接从解析的 XML procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string; SOAPResponse: TStream); var XMLDoc: IXMLDocument; begin SOAPResponse.Position := 0; Memo1.Lines.LoadFromStream(SOAPResponse); ClientDataset1.Active := FALSE; SOAPResponse.Position := 0; XMLDoc := NewXMLDocument; XMLDoc.Encoding := 'GB2312'; SOAPResponse.Position := 0; XMLDoc.LoadFromStream(SOAPResponse); XMLTransformProvider1.TransformRead.SourceXmlDocument := XMLDoc.GetDOMDocument; ClientDataset1.Active := TRUE; end; 注意单元的引用读 XML 呵呵 ~
运行速度不错! |
拯救我的老平板三星note8.0 table(GT-N5110)升级到lineage os-14.1(android7.1)全记录
买了多年的三星平板note8.0已经闲置了一段时间,今天在家不能出门,也没啥事,就把它拿出来刷新系统。不成想居然搞了一天,还差点变成了砖。
原版的系统是安卓4.0的系统,很多软件已经不能用了,微信、优酷都不支持,而且三星也不提供更新升级,于是寻求第三方解决方案。折腾过程一波三折,就不赘述了,我就讲一下正确的操作过程吧。
切记我这里讲的过程只针对三星note8.0 table,国行版本,版本号是...
阅读详情
相关推荐
gmsv源代码c语言,石器时代ABLua的原理、简介、过程、运用、收发
操作原理(一)服务端:服务器源文件客户端:客户所操作的程序(既是游戏客户端)接口:既是某项功能(例如:鼠标点击,文字发送,战斗,观战,人物动作等)返回的值ABlua:在源代码中添加的整套引擎作为回调接口--lua所实现的功能是基于服务端源码添加的接口由该接口与客户端发送封包实现功能源码里是否有ABlua回调接口?例如:源码里的gmsv/battle.c文件(既是战斗回调文件)以下为简单描述C给予l...
delphi企业级分布式架构多层,数据库、应用服务器、客户端分布不同设备,自定义:主(28*200矩阵)从表(17*1024加中文计算字段加分页,客户端一次性请求,服务端同时响应返回数据,高效只需2秒
delphi商用企业级计算,分布式架构多层,数据库、应用服务器、客户端分布于不同设备,自定义:主(28*200矩阵)从表(17*1024加中文计算字段加分页,客户端一次性请求,服务端同时响应返回数据,高效只需2秒 一、结果图: 二、关键技术: -- 主表、从表、从从表:必须: -- 1、主表分页条件 -- 2、各自产生自己的临时表 -- 3、排序条件:必须格式转化,否则可能主从表查询结果...
密码学小白必看:三大顶级会议论文下载与阅读指南(附完整资源链接)
本文为密码学初学者提供了系统获取和阅读三大顶级会议(Crypto、Eurocrypt、Asiacrypt)论文的实战指南。详细介绍了通过IACR官方渠道、ePrint预印本等权威资源免费下载论文的方法,并分享了高效筛选、精读核心章节及构建个人知识体系的具体策略,帮助读者快速切入密码学研究前沿。
delphi源代码三层框架【框架简介】
delphi 三层 中间件 源码 框架
微信H5网页授权通用方案:中转页破解域名限制,适配Hash/History路由
在Web开发中,OAuth 2.0授权码模式是实现第三方登录的通用标准,其核心原理是通过授权服务器颁发临时代码,再由客户端交换访问令牌。这一机制在微信公众号H5开发中尤为重要,用于安全获取用户身份。然而,微信平台对网页授权回调域名有严格的数量限制,这成为多子域名、多环境及微前端架构下业务扩展的主要瓶颈。其技术价值在于通过设计一个统一的中转授权页,将授权逻辑与业务逻辑解耦,让所有业务页面共享一个已配置的授权入口,从而突破域名配额限制。该方案的关键在于适配不同的前端路由模式,需精准处理Hash模式与Histor
告别环境依赖!用PyInstaller把PaddleOCR项目打包成独立EXE(附完整spec文件配置)
本文详细介绍了如何使用PyInstaller将PaddleOCR项目打包成独立EXE文件,彻底解决Python环境依赖问题。通过完整的spec文件配置和实战技巧,开发者可以轻松创建开箱即用的OCR工具,特别适合需要交付给非技术用户的场景。文章涵盖环境配置、模型打包、性能优化等关键环节,并提供了解决常见问题的方案。
Delphi常用多层框架介绍(转)
转自:http://www.cnblogs.com/xalion/archive/2012/01/18/2325418.html 目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下。如有不对之处,可以拍砖。 1. DELPHI 自身提供...
MIPI D-PHY TX 一致性测试实例解析 Part 03
本文之前,已经讨论了MIPI D-PHY TX的1.3.x和1.4.x的测试项,1.5.x的测试项相对较少,主要是用于时钟和数据通道相关的时序测量
Delphi通用插件框架
近期打算抽时间看点OO,UML的书,电脑里的martin fowler的5本书一直没怎么看过,学编程这么多年,其实水平一直不高,工作性质是一个原因,做一个古董系统的维护工作,不如那些一年到头在外做项目的有提高.反过来想,也许是个机会去重新写一个系统,可是2年来,我还是没能写出这个新系统.最近终于做成了一点事情,就是做了一个Delphi的DLL插件式框架,把原本各自独立的20个Delphi客户端
DO-254标准详解:航空电子硬件设计保证指南全方位解析
RTCA DO-254, 也被称为《机载电子硬件设计保证指南》,是航空电子硬件设计和验证中的关键标准,旨在为确保机载电子硬件的安全性提供设计保证。自2000年首次发布以来,DO-254就成为了民航和军用飞机中电子硬件设计认证的基准文件。随着航空硬件技术的进步和日益复杂化,确保硬件设计的准确性、可靠性和安全性变得至关重要。本标准是由RTCA和EUROCAE共同开发的,适用于涉及机载硬件的航空公司、飞机制造商、供应商和认证机构。
软考中级-软件设计师 23种设计模式(最详细解析!!)
软考中级-软件设计师 23种设计模式
TClientDataSet[28]: 读写其他格式的 XML 文件
TClientDataSet 可以直接存取的 XML 有自己的格式规范, 存取其他格式 XML 需要相应的映射文件(*.xtr). 这种 *.xtr 文件是用 XML Mapper(Delphi 自带, 可从开始菜单或 IDE -> Tools 启动)制作的. 一般会需要两个 *.xtr 文件, 一个用于读取(例子中是: ToDp.xtr), 一个用于写入(例子中是: ToX...
轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)
共轭梯度法的核心原理是求解优化问题的共轭向量组作为优化方向,由于优化方向间彼此正交,故每次迭代只需沿着一个方向寻优而互不影响。本文设计基于ESDF的障碍约束、曲率约束和平滑约束,基于ROS C++和Python提供了共轭梯度法的轨迹优化实践案例
DelPhi基础(一)程序框架和文件结构
1 Delphi程序的基本结构1.1 项目和项目文件Delphi中,应用程序的所有相关文件都被组织在一个 项目中,每个项目包含的文件很多,大部分是由Delphi 自 动创建并维护的。 每一个Delphi应用程序都有一个扩展名为dpr的项目 文件,是由Delphi 自动建立并维护的,一般情况下不必修 改它的内容 缺省生成的项目源文件代码如下:
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
delphi 中如何调用webservice返回dataset 数据集
We're nearly there. Drop a TClientDataset, a TXMLTransformProvider and a TDatasource on the form. Here's what the form looks like now:Link t
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
使用delphi 开发多层应用(三)Delphi常用多层框架介绍
目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下。如有不对之处,可以拍砖。 1. DELPHI 自身提供的DataSnap 从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在d...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
delphi 通过 TXMLTransformProvider 或 TXMLTransform 都可以让 TClientDataSet 读写此 XML
TClientDataSet 可以直接存取的 XML 有自己的格式规范, 存取其他格式 XML 需要相应的映射文件(*.xtr).这种 *.xtr 文件是用 XML Mapper(Delphi 自带, 可从开始菜单或 IDE -> Tools 启动)制作的.一般会需要两个 *.xtr 文件, 一个用于读取(例子中是: ToDp.xtr), 一个用于写入(例子中是: ToXml.xtr).可以通过 *.xtr 文件只读写源 XML 中的部分数据, 如果读取过于复杂的 XML 会生成嵌套的 DataSet
我在delphi7下调用微软的Web Services的心得.(其中服务是指返回数据集)
我在delphi7下调用微软的Web Services的心得.(其中服务是指返回数据集) 作者:cowbird 日期:20040619 本来是想写一篇文章,用来表达我对delphi7下调用web services的失望,因为尝试了不少时间,怎么也不能实现用delphi7调用dotnet下的返回数据集的web服务。 今天做了...
XMLTransformProvider
XMLTransformProvider1 XMLTransformProvider1.TransformRead.SourceXmlDocument := XMLDoc.GetDOMDocument; ClientDataset1.Active := TRUE
Delphi Web应用开发B/S框架推荐:《Delphi Web前端开发教程——基于TMS WEB Core框架》
使用Delphi TMS WEB Core 发现软件开发的无限可能性…… 二十多年来,开发环境 Delphi 以对 Windows 应用程序的快速可视化编程而闻名。尤其是桌面数据库应用程序的轻松创建和将应用程序部署到客户系统的简单性,使得 Delphi 与其他编程语言相比更受程序员欢迎。 2022年发布的Delphi 11.1可以为目标平台 Linux、MacOS 以及移动操作系统 iOS 和 Android 构建软件,以及开发响应式网页(表单设计器、HTML、CSS、Bootstrap)。
Delphi7 的 WebService 与 数据库
Server 端:SoapDataModule中加入 ADOConnection1、ADODataSet1、DataSetProvider1;DataSetProvider1的DataSet设置为ADODataSet1;ADODataSet1的CommandText设置为空,Connection设置为ADOConnection1。DataSetProvider1的DataRequest事件:f
Delphi编写WebService
Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该类 TSOAPAttachment: Attachment:附件,一种流类型,可以返回流数据 CGI:(EXE) ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s);






2408



被折叠的 条评论
为什么被折叠?



