软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用xml生成查询用sql语句

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

由于项目的需要,要编写大量的sql查询,而项目成员编写的格式有很多的不同,于是想到利用XML统一做方面的工作(具体如何转换,大家可以根据项目编程的语言来实现)。具体如下:

<data>
<select>''</select>
<from_table table_name=''>
<field_name
[connection]='AND(default)|OR'
[bool_type]='=(default)|NOT'
[contain]='=|<>|!=|>|>=|!>|<|<=|!<|LIKE(value cannot include "@comma@")|BETWEEN|IN'
[value]='1|1@comma@20|2003-04-01|2003-04-01@comma@2003-04-01|ab|NULL'
[special]='eg.:not in (1,2,3)|IS [NOT] NULL'
/>
<field_name .../>
<join>
<join_table table_name=''
[join_type]='INNER(default)|FULL OUTER|LEFT OUTER|RIGHT OUTER|CROSS'
join_condition='from_table_name.field_name=join_table_name.field_name'
>
<field_name deal like the first field/>
<field_name ...>
</join_table>
</join>
<orderby value=''/>
<groupby value=''/>
<having value=''/>
</data>

说明:
共七个节点:

  1. select节点:所需要得到的字段
  2. from_table:表源,该节点的table_name属性为表源的表名。
    field_name:字段名,构成查询的条件。其包含的属性介绍如XML串所示(下同)。
  3. join:联接条件
  4. join_table:联接的表
  5. orderby :排序的方法
  6. groupby:分组条件
  7. having:聚合条件

下面以SQL Server2000自带的Northwind数据库为例,介绍具体的做法:

SQL:
SELECT UnitsInStock, ProductID, ProductName
FROM Products
WHERE UnitsInStock BETWEEN 15 AND 25
ORDER BY UnitsInStock

XML:

<data>

<select>UnitsInStock, ProductID, ProductName</select>

<from_table table_name=’ Products’/>

<UnitsInStock contain=’BETWEEN’ value=’15@comma@25’>

</from_table>

<orderby>UnitsInStock</orderby>
</data>

 

由于时间比较仓促,还会有一些考虑不周全的地方,请大家讨论、补充,多谢了。如有疑问,也可以直接给我Email([email protected]




相关文章

相关软件