版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4. 4. 1 webservice接口文件的导入找到接口定义字符串http:/del1/qamonitorscrvice/userscrvice. asmx打开 cb6,选择菜单 filenewother,选择 webservices 标签,选择 wsdl importer,弹出如下界面: 在location of wsdl file or url:输入框内键入如下内容http:/de 11/qamonitorservice/userservice. asmx?wsdl, 点击 next.在弹出的窗体上直接点击finish结朿导入。4. 4.2结果集编码的修改在导入文件的.h文件内,找到如下
2、接口定义区:interface interface_uuid(d39db2b8-0f06-4033-57f6-171b17d23873“)usersystemsoap : public tinvokable找到get*resault定义,如:virtual getuserbyaccountnameresult* getusorbyaccountname(const ansi string accountname) = 0;> 将返回类型 getuserbyaccountnameresult*改为 widestring 类型virtual widestring getuserbyaccou
3、ntname(const ansistring accountname)二 0;4. 4.3提交数据中含有中文乱码的修改>在导入文件的.cpp文件那,找到如下位置if (usewsdl)!r i o->wsdllocat i on = addr;rio->service = defsvc;rio->port 二 defprt;>改为如下内容,新添加两行蓝色字体部分,if (usewsdl)!r i o->wsdlloc at i on = addr;rio>service = defsvc;rio->port = defprt;rio->c
4、onverter->0ptions«soutf8inheader;rio->httpwebnode->useutf8inheader = true;4. 4. 4 clientdataset 的导入>添加一个数据模块,在数据模块上添加如下控件:xmltransformprovider> clientdataset、datasource> 设置 cl i entdataset. provi dername = xmltransformprovi derdatasource. dataset = clientdataset>将返回的结果集保存为x
5、ml文件(1)。> 生成xml文件的解释文件.xtr文件。设置txmltra nsfotin*xmltransfonn = xmlt ran s f or mpr o v i der->tr a nsfooiread;xmltransform->sourcexml = xml 文件;xmltransform->transformat ionfi le = xtr 文件;xmltransform1->transformxml(xml,"”);cli entdatasetl->xmldata = xmltran s form1->re su11s
6、 tr i ng;clientdataset->active = true;(1)将返回的结果集保存为xml文件。用 本地类 classwebservicebase 的 公 有方法 virtual void fastcallsavcxml(widcstring xml, string fi1 ename);实现如下:void _fastcall classwebservicebase:savexml(widestring xml, stringfilename)string strxml = utf8encode(xml);tfilestream *pf订e 二 new tfilestr
7、eam(filename, fmcreate);char *tmpstr = strxml. c_str();pfile_>write (voi d *) tmpstr, strxml. length ();delete pfile;调用如下:savexml(xml, "c:project. xml");参数说明:widestring xml为需要保存的xml web service返回内容。string filename为xml要保存的位置。生成xtr文件打开c+builder,选择菜单tools xml mapper o在弹出的窗口内选择fileopen, 打开保
8、存的xml文件,选择含有dataset的节点(有黄色边框),如下图:点击鼠 标右键,选择 select al 1 chi ldrenselected nodeb! result日 x$: schema日“ xs:elementx日 x$:complextype 曰 x$:choice 白 xs:elementxel励 x$:complextype 日 xs:sequence “励 xs:elementx x$:$equence日运 diffgcdiffgram 日“ newdataset3 open xml documentctrl+octrl+ssave xml documentregene
9、rate documentregenerate structurectrl+rselect allctrl+aselect all childrenselectctrl+lccreate datapacket from xmlctrl+dset rootclearctrl+cprojectdak h在窗口的中间会出现己经选择的节点:tansformation : <none>selected nodes | selected fieldsresultdif f gr: dif f gram1resultdiff gr: diff gram1resultdiff gr: diff g
10、ram1resultdiffgr: diff gram'resultdiffgr: diffgram'resultdiffgr: diff gram'再次选择鼠标右键,在弹出菜单里选择create datapacket from xml日 窗 newdataset色 open xml documentctrl+ois save xml documentctrl+sregenerate do匚urnentregenerate structurectrl+rselect allctrl+aselect all childrenselectctrl+l1 create dat
11、apacket from xmlctrl+dset rootclearctrl+c或口去祓台-t.匝:acreabe and test tremsformabions®二 jea=k>淋ffl-&一xi transformation ixms&班却婪1漳券 save transformation 菽菊 xml文件的转换文件xtr共使用。如下图:tensformation : <geneetedselected nod哭| selected fields |resultdiffgr: diffgramvn ewd < r owdat ar 0wxprc
12、 resultdiffgr: diffgramvn ewd < r owdat ar 0wxprc resultdiffgr: diffgramvn ewd < r owdat ar owxprc resultdiffgr: diffgramn ewd < r owdatavr 0wxcu re$ultdiffgr: diffgramvn ewd < r owdatavr owxu sresultdiffgr: diffgramn ewd ;r0wdatar0wxusv move upctrl+u move downctrl+dclear fieldctrl+f3 op
13、en transformationctrl+ocreate trnnsformationctrl+ttest transformationctrl+e| save tr&nsformationctrl+sclearctrl+c4. 4.5 clientdataset中字段的长度与数据库中字段长度不符的解决办法有两种办法可以解决这种问题:在保存xml文件之前,将数据库内所有字段都填写饱和,即假设数据库字段fieldl,string类型,长度为10,则至少有一条记录为10个字符:asdfghjklz。第二种方法比较灵活,打开生成的xtr文件,在文档最后有如下字段定义field attrna
14、me二"userid" fieldtype=?zstring/z width二"10"/修改它的width值即可。后來有发现了一种相对简单的解决办法。如下图:田proje3 open datapacketctrl+o寸 ll-1 j田間testiff! save datapacketctrl+ss-flincodtconnect to remote serverctrl+rs-flinden:select allctrl+aselect all childrenselectctrl+lg create xml from datapacketctrl+xc
15、learctrl+c将datspeicket保存为一个xml文件。然后打开该文件直接修改"width”。如下图<datapacket version="2. 0">oi1etadata><fields><field attrname= projectmoudlename" £ieldtype二"string" width二"8"/><fielh attrname= "testcount" fieldtype="string&qu
16、ot; width="2v><field attrname="coderows" £ieldtype二 i trin尹 width二“4"/><fielh attrname= "density" fieldtype="string*r width二</fields><params/</metadata><r0wdata/><7 datapacket然后将上一次创建的datapacket清除掉。如下图:datapacket: <genera
17、tedbe-&-e-e-曰3 open datapacket save datapacket connect to remote server select allselect all childrenselectcreate xml from datapacketctrl+octrl+s ctrl+r ctrl+actrl+lctrl+xclearctrl+c然后在打开刚才修改过的xml。如下图:open datapacketctrl+oq save datapa匚ketctrl+5connect to remote serverctrl+rselect allclzrl+aselect all childrenselectctrl+ls create xml from datapacketctrl+xclearctrl+c打开后如下图:datapacket: aa.xml日ctrl+octrl+5connect to remote serverctrl+rselect allctrl+aselect all childrenselectctrl+lg create xml from datapacketctrl+x白間cocctrl+c: clearflin derlsuyj“ datatype="s tring"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市浦东新区南片联合体2025-2026学年初三教学质量统一检测试题(一)物理试题试卷含解析
- 2026年【中考猜想】福建省全国初三2月大联考(全国卷)数学试题含解析
- 2026年大学大一(经济学原理实训)经济学实训综合测试试题及答案
- 患者权利与神经内科护理伦理
- 2025年前台防疫接待礼仪高频题
- 护理专业护理心理护理课件
- 护理时间管理:减少工作失误的方法
- 《美容消毒与卫生管理》医学美容技术专业全套教学课件
- 2026三年级数学上册 分数的实际应用
- 2026四年级数学下册 0加任何数的运算
- 高中英语必背3500单词表完整版
- 土木工程专业认识教育课件
- 动脉血气分析六步法杜斌
- 软体家具、沙发质量检验及工艺
- 全套电子课件:数据结构(C语言版)(第三版)
- 建设项目工程造价管理办法
- 测量管理体系标准宣贯ppt课件
- 2020年小学中高年级书法教程ppt课件
- 前期手续横道图
- 计算机各种进制转换练习题(附答案)参考模板
- MFB60T系列自动封边机
评论
0/150
提交评论