其实是设计一种规范。xml只是一种载体,写的XML规范需要能解决多表连接和动态生成SQL问题。有点思路是:在XML节点中写入SQL语句。把这个SQL语句当做一个虚表。从这个虚表中SELECT自己的想要的字段。但是SQL怎么写不知道。下面是大部分的xml;只有<rs0> </rs0> 和<union> </union>里面怎么写SQL不知道改怎么写。下面红色的SQL语句只是大体应该这样子的。
<rs name="RS">
<rs0>
select ID, PID, CID, DID from A left join B ON a.id=b.id where 1=1
</rs0>
<union>
select ID, PID, CID, DID from A left join B ON a.id=b.id where 1=1
</union>
</rs>
<?xml version="1.0" encoding="gb2312"?>
<root>
<server name="server" Ip="232.123.3.3" instance="MSSqlserver" userid="" pwd="">
<database name="sde">
<rs name="tpm_pipe"> </rs>
<field name="ID", table="" datatype="varchar" pk="true" auto="true" num="1000", default="">
<display type="ComboBox" caption="区属"configurable="false" oftenused="true"display="false">
<!--0代表“或”出现,1代表“并”出现,2代表“或和并”全部出现,3代表什么都不出现 -->
<injectors type="1"/>
<!--0代表“等于和不等于”出现,1代表“大于、大于等于、小于、小于等于”出现,2代表上述六个全部出现 -->
<conditions type = "0">
<condition>等于<condition>
<condition>不等于<condition>
</conditions type = "0">
<options transform="true">
<option value="ABS">宝山区</option>
<option value="AHK">虹口区</option>
</display>
</field>
<field name="ID", datatype="int" pk="true" auto="true" num="1000", default="">
<display type="textbox" caption="管道GID"configurable="false" oftenused="true"display="false">
<injector type="1" />
<conditions type = "1">
<condition>等于<condition>
<condition>不等于<condition>
<condition>大于<condition>
<condition>大于等于<condition>
<condition>小于<condition>
<condition>小于等于 <condition>
</conditions type = "1">
</display>
</field>
</database>
</server>
</root>
<rs name="RS">
<rs0>
select ID, PID, CID, DID from A left join B ON a.id=b.id where 1=1
</rs0>
<union>
select ID, PID, CID, DID from A left join B ON a.id=b.id where 1=1
</union>
</rs>
<?xml version="1.0" encoding="gb2312"?>
<root>
<server name="server" Ip="232.123.3.3" instance="MSSqlserver" userid="" pwd="">
<database name="sde">
<rs name="tpm_pipe"> </rs>
<field name="ID", table="" datatype="varchar" pk="true" auto="true" num="1000", default="">
<display type="ComboBox" caption="区属"configurable="false" oftenused="true"display="false">
<!--0代表“或”出现,1代表“并”出现,2代表“或和并”全部出现,3代表什么都不出现 -->
<injectors type="1"/>
<!--0代表“等于和不等于”出现,1代表“大于、大于等于、小于、小于等于”出现,2代表上述六个全部出现 -->
<conditions type = "0">
<condition>等于<condition>
<condition>不等于<condition>
</conditions type = "0">
<options transform="true">
<option value="ABS">宝山区</option>
<option value="AHK">虹口区</option>
</display>
</field>
<field name="ID", datatype="int" pk="true" auto="true" num="1000", default="">
<display type="textbox" caption="管道GID"configurable="false" oftenused="true"display="false">
<injector type="1" />
<conditions type = "1">
<condition>等于<condition>
<condition>不等于<condition>
<condition>大于<condition>
<condition>大于等于<condition>
<condition>小于<condition>
<condition>小于等于 <condition>
</conditions type = "1">
</display>
</field>
</database>
</server>
</root>
解决方案 »
- thread.sleep的问题,帮下忙了,各位高手
- 谁能帮我看看这个问题!!winform的
- XHEO|Licensing 有人用过吗?它的多语言支持始终也搞不好,大家帮忙看下谢谢,解决立刻结贴
- 请教用installshieldX安装NT服务的问题
- Web页面中的用户控件中的按扭如何对Web页面进行操作?
- 读写文件时出错。急~~在线等
- 数据更新问题
- 制作具有合并格的中式报表(急)
- 【急】如何取消引用类型的引用?让其独立!?
- 初学,请高手指点
- 在线等安装部署问题
- 为啥在textbox1输入错误的路径和文件名,咋没捕捉到错误呢?比如输入12333.txt,按button1,直接就跑到finally去了呢?
可以看看Sql server report service 中 报表定义文件 RDL 文件,自己研究一下,就会有帮助。
<?xml version="1.0" encoding="gb2312"?>
<root>
<server name="server" Ip="232.123.3.3" instance="MSSqlserver" userid="" pwd="">
<database name="sde">
<resultset name="" type="sql">
<fields>
<field name="Area_Class" table="TPM_Pipe" datatype="varchar" pk="false" auto="true" num="1000" default="" length="" describe="" permitempty="true" ="false" sortrule="" formula="" precision="5" decimaldigits="0" ingseed="" ingincreasingquantity=""/>
</fields>
<selectsection>
<vt name="ta">
TPM_Pipe left join TPM_Stand_Pipe ON TPM_Pipe.GID=TPM_Stand_Pipe.GID where 1=1
</vt>
<condition type="and">
ta.len>10
</condition>
</selectsection>
<union>
<tables>
<table name="T1"/>
</tables>
<fmap>
<area_class table="T2" map="area" />
</fmap>
<vt name="uniontable">
from T8 left join T2 ON T8.ID=T2.ID left T3 T2.ID=T3.ID where 1=1
</vt>
<condition type="and">
T2.ID>12
</condition>
<condition type="or">
T8.ID=3
</condition>
<condition type="or">
T8.ID in (2,3,4)
</condition>
</union>
</resultset>
<fielddisplay filed="Area_Class" type="ComboBox" caption="区属" configurable="false" oftenused="true" display="false">
<!--0代表“等于和不等于”出现,1代表“大于、大于等于、小于、小于等于”出现,2代表上述六个全部出现 -->
<conditions type = "0">
<condition>等于</condition>
<condition>不等于</condition>
</conditions>
<options transform="true">
<option value="ABS">宝山区</option>
<option value="AHK">虹口区</option>
</options>
</fielddisplay>
<fielddisplay filed="ID" type="textbox" caption="管道GID" configurable="false" oftenused="true" display="false" >
<conditions type = "1">
<condition>等于</condition>
<condition>不等于</condition>
<condition>大于</condition>
<condition>大于等于</condition>
<condition>小于</condition>
<condition>小于等于 </condition>
</conditions>
</fielddisplay>
<fielddisplay filed="installdate" type="DateTimePicker" caption="管线安装时间" configurable="false" oftenused="true" display="false">
<conditions type = "1">
<condition>等于</condition>
<condition>不等于</condition>
<condition>大于</condition>
<condition>大于等于</condition>
<condition>小于</condition>
<condition>小于等于 </condition>
</conditions>
</fielddisplay>
</database>
</server>
</root>