热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何以XML为数据源,进行SQL查询

本人主要的搞统计的,并且在数据库方面是新手。请各位高手帮忙解决。条件与要求:1.手头上有XML文档,包含“Code”、“Date”、“Position”等字段。2.想以
本人主要的搞统计的,并且在数据库方面是新手。请各位高手帮忙解决。

条件与要求:
1.手头上有XML文档,包含“Code”、“Date”、“Position”等字段。
2.想以ADO对该XML文档进行操作,并使用SQL语句对其进行统计分析,类似于“SELECT Position,COUNT(Code) FROM XML ORDER BY Position,Date ”。
3.不是在服务器上处理,而是在普通PC上进行的。
4.只用ADO,不用ADO.NET。


问题:
1.ADO如何对XML创建Connection?
2.SQL查询语句如何写?
3.如果要对多个XML进行JOIN,如何连接?如何写SQL查询?


上面开出的问题可能有些苛刻,主要是因为工作的原因:没有固定的统计内容,几乎天天都不一样,并且经常是上午给文档,下午就得出结果,用Excel效率太慢,且处理的数据量有限。所以希望用XML。
还有就是机器是公司4年前购入的,也没装多少软件,所以“临时数据库”的建议是行不通的,只希望使用ADO。

13 个解决方案

#1


网站上找了一通,大多都是用RecordSet打开XML(如下),这样就用不了SQL查询。

Dim oRs As New ADODB.Recordset
oRs.Open "c:\text.xml", "Provider=MSPersist;", adOpenForwardOnly, _
    adLockReadOnly, adCmdFile


所以,希望各位高手能指点一二,谢谢。

#2


用什么语言?

#3


 请参考下面的例子:   
  Q263247   HOWTO:   Obtain   an   ADO   Recordset   from   XML   
  http://support.microsoft.com/support/kb/articles/q263/2/47.asp   
  Q271772   HOWTO:   Access   Hierarchical   XML   Data   with   the   XML   OSB   
  http://support.microsoft.com/support/kb/articles/q271/7/72.asp  

#4


引用 3 楼 wwwwb 的回复:
请参考下面的例子:  
  Q263247 HOWTO: Obtain an ADO Recordset from XML  
  http://support.microsoft.com/support/kb/articles/q263/2/47.asp  
  Q271772 HOWTO: Access Hierarchical XML Data with the XML OSB  
……


wwwwb兄,你给的链接只是将xml转换成Recordset,这样是无法对Recordset做统计的。
我是想以xml为数据源(Database Source),然后用SQL查询。

#5


引用 2 楼 WWWWA 的回复:
用什么语言?


WWWWA同学,用哪种程序语言都行,只要能实现我的要求就可以。
不过,如果能给出VB的,那就最好了。^_^



另外,再冒昧的问一句,wwwwb是你亲戚吗?

#6


怎么没人回?

本人是第一次发问题(2个贴一起发的)呀!所以结贴率才0.0%!!!!!!!!

#7


以前有过这样的想法:
原来产品的配置参数存储在数据库中,后来想脱离数据库改为XML配置文件,但是这样所有的访问数据库的模块都要改动...

当时的设想就是每个表对应一个XML文件,Node ID是表Identity Key,字段对应Node属性,然后再写一些对XML的增删改查,不过当时好象主要问题集中在如果表关联的话,处理比较麻烦.

顶一下

#8


搜索了一下,似乎没有直接操作XML的方法,一般是将XML转换为TXT、数据库之类的方法

#9


XML 不是数据库,无法直接使用SQL语句,只能把它加载到 recordset / dataset 中来处理。

#10


引用 8 楼 wwwwb 的回复:
搜索了一下,似乎没有直接操作XML的方法,一般是将XML转换为TXT、数据库之类的方法


wwwwb,请问如果转成TXT,如何操作?
能否给个实例?谢谢!

#11


引用 9 楼 acmain_chm 的回复:
XML 不是数据库,无法直接使用SQL语句,只能把它加载到 recordset / dataset 中来处理。


如果加载到Recordset,如何使用SQL语句查询?
俺的意思是用SQL对Recordset进行统计,比如用SUM、COUNT这样的聚集函数来查询?

俺刚接触数据库,所以希望能给个例子或片段,谢谢!


(希望能早点结贴呀~~~~)

#12


唉~~
再等多一个星期,没有满意的回答就散分了~~

2010-4-18

#13


如果数据库不是固定的话,可以考虑选择DB2。DB2 9.5以后的版本对xml进行了全面的支持,xquery也是针对xml格式数据进行的操作语言,语法比较简单,和传统sql有点像。有需要的话可以研究一下。

推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
author-avatar
永远在等一个人--嘉儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有