使用xml生成查询用sql语句

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

由于项目的需要,要编写大量的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>

说明:

共七个节点:

select节点:所需要得到的字段

from_table:表源,该节点的table_name属性为表源的表名。

field_name:字段名,构成查询的条件。其包含的属性介绍如XML串所示(下同)。

join:联接条件

join_table:联接的表

orderby :排序的方法

groupby:分组条件

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(chinasoe@163.net

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航