将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [4]

Qt QChart实战:从零打造一个实时温度监控仪表盘(附完整源码) 本文详细介绍了如何使用Qt QChart模块从零构建一个工业级实时温度监控仪表盘。通过实战案例,展示了波形图的绘制、坐标轴配置、数据流模拟等关键技术,并提供了完整的源码实现,帮助开发者快速掌握Qt在数据可视化领域的应用。 阅读详情

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )   


小气的神

2002-5-25

 

Article Type: Overview 

难度等级:5/9       

版本:4.16

 

 

使用SQLXML Managed Classes

       SQLXML提供的Managed Classes并不多,dotNET Framework提供了MS SQL 2000的Data Provider,这意味着你可以使用ADO.NET的Class来执行FOR XML子句的查询,但是你将不能用这些Class执行我们上面说的模板和服务器端的XPath命令。所以SQLXML提供的Managed Classes也是着重在这些方面的,可喜的是这些Classes和ADO.NET中的对象能很好的配合工作,比如Dataset.

从下面这幅图中我们可以看到SQLXML Managed Classes的对象模型:

      

 

通过这些Managed Classes和原来dotNET Framework的Classes,我们可以通过更多的方式存取数据库。而且我们看到信息流动的形式可以是多种的,出于对性能的考虑,开发人员将根据具体的情况选择不同的方式(详见SQLXML3.0文档:Architecture of Client-Side and Server-Side XML Formatting)

      

 

不过从某种程度上它可能改变我们原来的架构的体系结构,SQLXML 3.0带的一些例子婉转地说明了这一点,而且也想证明对于有的应用来说,SQLXML可以很好的处理一些情况,并且发挥XML的强大优势。

       DAL的概念是如此的流行,而我也从Project Track System的代码中抽出DB存取的一些代码,组成一个DAL组件,然后我试图对一个简单的假设测试一下,那就是先定义一个模板(XML view),然后用DAL执行这个模板,从中取出数据,最后用一个简单的XSLT将它显示出来。

模板就用我们上述中的任意一个显示Employees表的模板,而后我们把执行模板的结果显示在一个Grid中,并且将同样的结果通过XSLT做一个HTML Table的显示。

 

 

       这张图的结果使用两种不同的方式,ASP.NET Grid中的数据是这样显示出来的,首先我们加一个新的Item:一个Dataset,然后我们Copy上面用VS.NET产生的那个Schemas文件的内容,可以说两者是一样的,之后我们根据这个Dataset就可以生产一个C#的类,接着我们拖动这个Dataset到WebForm的设计视图,就会一个Wizard出现,选中这个Dataset。然后我们再拖入一个ASP.NET的DataGrid控件,设置它的DataSource是这个Dataset。然后在Page_Load加入下面的代码:

 

private void Page_Load(object sender, System.EventArgs e)

     {

              // Put user code to initialize the page here

employees1.ReadXml( new XmlTextReader( "http://localhost/northwind/templates/emplyeesvs.xml" ) );

              dgEmployees.DataBind() ;

             

     }

 

这样我们完成了DataGrid中的显示(显然这种方法没有使用新的Class,只用了dotNET Framework)。至于在Grid下面的HTML Table显示是通过执行DAL和一个XSLT获得的。大致的代码如下:

 

public void WriteTable()

{

     string RetXMLString ;

     XSLTHelp xslHelp = new XSLTHelp() ;

 

     SqlXmlDal = new SQLXML() ;

     RetXMLString = SqlXmlDal.ExecuteTemplteFile( "selectemployees.xml" ) ;

 

     RetXSLString = xslHelp.ApplyXSL( RetXMLString , Server.MapPath("Employees.xslt" ))  ;

     Response.Write ( RetXSLString ) ;

}

      

  最后一段代码是使用XPath访问映射文件的,我经常使用类似下面这段代码来测试自己的映射文件和XPath表达式。

 

              SqlXmlCmdObj = new SqlXmlCommand( SQLDBConnStr ) ;

              SqlXmlCmdObj.CommandType = SqlXmlCommandType.XPath ;

              SqlXmlCmdObj.CommandText = "Employees" ; 

              SqlXmlCmdObj.SchemaPath = SchemasDir + "EmployeesVS.xsd";

              ResultStream = SqlXmlCmdObj.ExecuteStream() ;

                           

              StreamReader SR = new StreamReader( ResultStream ) ;

              ResultString = SR.ReadToEnd() ;

              Console.WriteLine(ResultString);

      

好了,我想这个简单的例子之后也结束我们的旅途,至此我们大致的考察了一些SQLXML3.0 中的一些新特性,虽然只开了一个头,我们已经发现里面藏着很多很多的内容和概念(全部详细讲完可能可以够写一本书了haha),当然我们只考察了非常有趣而且容易上手的几个功能,其中有许多我们还没有真正深入涉及到,但在描述的过程中我已经开始不停地假设,假定你以前有使用过SQL 2000 XML功能,假定你对XDR、XPath、XSLT有一个大致的认识和印象。最后我不得不提高了这篇文章的难度等级,我想这是我的问题,事隔一二个月之后,几乎是边回忆边写边调试这些例子和程序,所以一定会疏漏掉一些,使得文章更加难读。不过我相信SQLXML中有足够的特色可以让你对它印象深刻,尽管比起我喜欢的Hailstorm模型,SQXML还会逊色和欠缺一些,但从Microsoft对SQL Server的着力和期望来看,SQL Server 2000和它的下一个版本都会承担和展现更多的功能和特色,无论XML还是数据存储本身,SQL Server都将不是一个简单的产品,而会象一个开发平台的方向迈进,借助XML,你会发现它能够更加紧密的和Microsoft的其它产品融合在一起,并且轻易地体现其重要的核心角色。

 

(之后的文章,我们可能会考察有关SQLXML更细节的一些特性亦或是最新的Microsoft SQL Server Notification Services的一些内容,我想它们都将是十分具体的SQLXML的应用和深入)

 

相关文件下载: SQLXML.zip ( 51K )

 

 

 


特别说明:

本文原创,优快云署名首发,所有文字和图片版权所有。未经授权请勿传播、转载或改编。

如果有问题或建议,请发电子邮件给new2001@msn.com

android 蓝牙通讯demo android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。 立即下载

相关推荐

【开源】基于TI ADS1299与ESP32的8通道脑电采集设备YuEEG全解析

本文详细解析了基于TI ADS1299芯片与ESP32主控的开源8通道脑电采集设备YuEEG。内容涵盖硬件设计、固件驱动开发及Python上位机软件实现,提供了从电路连接、SPI通信配置到数据读取与实时波形显示的全套教程。该项目为学习脑机接口(BCI)与高精度生物电信号采集提供了完整的开源解决方案,适合创客、学生及嵌入式开发者实践。

weixin_42576410的博客 1243

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [2] (转)

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [2] (转)[@more@]XML:namespace prefix = o ns = "urn:schem...

csd3176的博客 164

【CAN通讯系列18】- NM在干什么?休眠唤醒

同时针对不同休眠或唤醒场景,网管报文的userdata有所区别,如何做到场景与网管报文内容一一映射,通常会定义另一帧报文,用来表明当前是哪个或哪几个唤醒条件或休眠条件满足。又或者如果用户发现汽车电量不充足了,那么会有充电需求,插枪充电,这时如果插上慢充枪,那么OBC会先被唤醒,识别出插枪行为及其慢充枪的连接状态,然后OBC唤醒BMS和其他相关的控制器进行充电。也就是说,通过对一个又一个整车功能和应用场景的详细分析,最终能够汇总出整车所有的休眠唤醒场景需求,通常会用一个表格来管理,俗称休眠唤醒表。

menghuyouyou的博客 1168

使用SQLXML 3.0把存储过程暴露为Web服务

使用SQLXML 3.0把存储过程暴露为Web服务 最新的技术是Web服务。现在出现在所有市场中的类似简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、通用描述、发现和集成(UDDI)等术语的基本元素都是XML和Internet。 Web服务用于建立松散连接的应用程序并实现互操作性。松散连接的应用程序使你能重新配置、重新部署或重新定位它的实现而不影响相关的应用程序。互操作

blog of eulota 1438

AD9826的时序分析及Verliog代码

AD9826的时序分析及Verliog代码 (本文对AD9826的模式和时序进行了分析,如有错误敬请指正,关于这款ADC芯片的基本参数,本文不做过多介绍) 1、AD9826的模式 AD9826的采样模式主要有两种,一种是“CDS模式”,一种是“SHA模式”;在这两种模式下分别有1通道、2通道、3通道的采样模式 (1)CDS模式 简单的来说CDS模式就是,有两个采样时钟,一个是ADCCLK1,用来采样CCD波形的参考电平,一个是ADCCLK2用来采样数据电平,然后经过,偏移量调节,再经过PGA增益放大最

m0_50102488的博客 6476

ADP在线自适应动态规划之持续激励条件

在线自适应动态规划之持续激励条件 在在线自适应动态规划算法中,需要通过满足持续激励条件(Persistent Excitation Condition)保证critic网络权值的收敛性,一般的做法都是在算法初期在输入端引入探测噪声(Probing Noises)来保证数据的丰富性,但是由于在输入端引入噪声会给系统带来一些不好的影响,甚至可能破坏系统的稳定性。因此,出现了一些其他的方法来避免引入探测噪声,受阅读所限,我目前了解两种: Concurrent Learning(CL) Experience Re

qq_43435956的博客 6161

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [2]

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )   小气的神2002-5-25 Article Type: Overview  难度等级:5/9        版本:4.16  使用HTTP访问SQL Server的多种方式首先我们可以通过Http协议访问SQL 2000,

ccBoy的专栏 1654

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码)

本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。

bert9linguist的博客 506

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [3]

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )   小气的神2002-5-25 Article Type: Overview  难度等级:5/9        版本:4.16  产生映射文件如何创建一个映射文件呢?首先它是一个XML文件,过去Microsoft推荐使用XDR(X

ccBoy的专栏 1946

【0000】PostgreSQL V17.4 内核源码剖析专栏(2017 ~ 2025.11.28 更新)

本专栏将会持续更新,直到将PostgreSQL V13.2源码涉及的所有原理、技术剖析完成为止。每一篇文章都是经过多次的源码阅读 + 调试,得以验证之后才梳理成文章形式。最终该专栏的文章数量应该在一万篇或以下,这也是文章序号从【0000】开始的缘故。通过本专栏的学习,能够让你掌握PostgreSQL数据库中的每个技术背后,底层的实现原理。

Postgres 数据库内核开发工程师 1万+

【STM32项目】基于AI技术的多功能消防机器人(完整工程资料源码)

机器人通过巡逻扫描环境空间与障碍物、定位导航、探测物体/环境进行建模/自动地图测绘、扫描火焰、获取温湿度大小、获取空气安全情况来判断当前环境地点是否安全,检测到温度过高或检测到易燃、烟雾、有毒气体或摄像头识别到火焰时能够通过高压水泵喷射器来实现火焰隔离工作,蜂鸣器进行现场鸣笛报警,同时将当前环境温湿度大小、空气情况、环境地图、是否安全信息,将各个传感器来接收获取到的信息,实时发送到用户手机中的微信小程序,实现与用户远程监视功能,用户同时也能通过手机与电脑远程下发命令来操控机器人来实现交互功能

嵌入式技术开发 1万+

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [1]

将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes )   小气的神2002-5-25 Article Type: Overview  难度等级:5/9        版本:4.16        当Web Services不仅作为一种新技术,而且也作为一种对现有技术的整合时;它开始影响一

ccBoy的专栏 2263

YOLOv11 改进 - 注意力机制 | 空间增强注意力SEAM(Spatially Enhanced Attention Module)提升遮挡场景检测鲁棒性

本文介绍了分离与增强注意力模块(SEAM)在YOLOv11中的结合应用。SEAM模块旨在增强面部特征学习能力,特别是处理面部遮挡问题。它采用多头注意力机制强调面部区域、抑制背景区域,第一部分使用深度可分离卷积减少参数并学习通道重要性,通过1x1卷积增强通道联系,利用两层全连接网络融合通道信息,经指数归一化后作为注意力权重与原始特征相乘。我们将SEAM集成到YOLOv11的检测头中,并进行相关注册和配置。实验表明,该方法有助于提升模型检测性能。

魔改工程师的博客 1665

[原创]SQLXML系列之一:SQLXML初体验——用XML代替SQL来操作数据库

随着Internet的飞速发展,W3C成员意识到必须找到一种办法将数据和Web的表现方式分离出来,于是XML诞生了。当今的XML已经成为IT领域各个数据(特别是文档)的首选格式。由于它具有标记不同字段的能力,因此使搜索变得更简单。从微软发布SQL Server 2000的时候,就读XML数据的存储和检索提供内置的支持。而且微软早已意识到必须对其不断地改进,以便和不断发展的W3C的XML标

artech的专栏 765

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

图解sql server 命令行工具sqlcmd的使用

一 操作实例 安装了sql server后此工具已经有了; 以sa登录; 打个命令,没反映; 可执行操作系统命令;加上!!即可; 查看帮助; 再打命令,也没反映;查询结果不显示; 要加上go,才行; 执行sql语句; 在企业管理器中查看,命令行创建的数据库出现了...

bcbobo21cn的专栏 3万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SQL查询 生成XML

1 select t.UserNameXML.value('(/b/UserName)[1]','varchar(20)') as Name /*查询XML中的UserName值*/ from (select a.* ,(select b.UserName from dbo.T_UserLogin b where b.LoginId=a.LoginId for xml auto, type,

Fanbin168的专栏 2534

sqlcmd基本用法

谨以此文送给以前的那些同事们,每每回想其在TARA上一起度过的ORACLE访问的日子,就会觉得现在的SQLServer那些花里胡哨的图形界面简直是在亵渎数据库分析师,而深负犯罪感。顺便赞下TOAD,强大的怪兽! 接下来我们来说说sqlcmd.exe. sqlcmd是个好东西啊,它的老爹osql是我最喜欢的SQLServer工具,数度快,功能强大,爽啊!sqlcmd在osql上作了相当多的改进

u011679955的博客 2万+

我的.NET书架 (入门篇)

 我的.NET书架 (入门篇) 小气的神2003-01-05 Article Type: OverView  难度等级:1/9        版本:1.02 好书永远是学习的良师益友,网友永远是进步的学习榜样,而网页就是一种对话一种分享。下面的书都是针对刚刚入门的”.NET CLR Developer”,这些书适用在刚刚从Java、C/C++环境

ccBoy的专栏 4125

我的.NET书架 (进阶篇)

 我的.NET书架 (进阶篇) 小气的神2003-01-06 Article Type: OverView  难度等级:1/9        版本:1.20 对于已经熟悉和习惯.NET Framework开发环境的开发人员,还需要面临另外一个.NET的开发学习曲线和阶段,那就是活学活用.NET技术到自己原来的开发经验中,到新的新的应用开发中。典型的有

ccBoy的专栏 3708

应用WSDK - 实践Web Services的X.509证书签名(序)

应用WSDK - 实践Web Services的X.509证书签名 小气的神 2002-12-18 Article Type: OverView  难度等级:2/9        版本:1.18        好了,我想这是一个美貌的时刻,至少对于许多平凡、依赖、新潮而且很Cool的微软开发人员来说,WSE 1.0(Web Services Enha

ccBoy的专栏 2983

应用WSDK -附录如何使用SOAP Trace Utility进行调试

应用WSDK -附录如何使用SOAP Trace Utility进行调试  小气的神2002-12-05 Article Type: Overview  难度等级:3/9        版本:1.20 这个附录是用来说明,我们在Web Services应用开发过程中,如何查看Web Services Client和Web Services Server端

ccBoy的专栏 2812

开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)

开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)  小气的神 2001-09-22 多语言版本的应用程序曾是一个门槛,迈过去意味着它可以面对更多的使用者。对于商业程序来说一个本地化的版本意味着可能打开一个更大的市场。中文版也曾是我们心中有关中国软件的一个情结和期望。希望dotNET能给我们带来一些不同的观点和变革,让我们重新看待自己的每一个软件应用。

ccBoy的专栏 2372

一个四层应用体系架构 [CBOFramework C# Beta 1 ]

一个四层应用体系架构 [CBOFramework C# Beta 1 ] 小气的神2002-5-12 Article Type: Overview  难度等级:7/9        版本:3.22        有关dotNET下的应用体系构架的话题,我们可以明确的从某一点开始,但是可能没有结束的那一点,永远没有:) 一大批原来COM+的程序员开始在CO

ccBoy的专栏 2295

Visual Studio.NET快捷键最爱收藏(多图)

Visual Studio.NET快捷键最爱收藏  小气的神 2002-01-23 Article Type: Information难度等级:0/9          版本:1.16     这个收藏展示的灵感来源于前些天我在优快云发的帖子《升级到Visual Studio.NET 的10个理由》和《不升级到Visual Studio.NET 的10

ccBoy的专栏 2254
上一篇: Microsoft Content Management Server 2002 bate1 速递(多图)
下一篇: 将SQLXML 3.0用起来( Web Services, XML Views, Managed Classes ) [3]
ccBoy
博客等级 码龄26年 6粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值