<%@ page contentType="text/xml; charset=GB2312" %>
<%@ page import="xmlinterface.*" %>
<%@ page import="java.sql.*" %>
<%
XmlRequest query1=new XmlRequest();
int id=0;
int sale_id=-10000;
String subSQL=new String();
Connection con1=null;
Connection con2=null;
Connection con3=null;
java.sql.Statement stmt1=null;
java.sql.Statement stmt2=null;
java.sql.Statement stmt3=null;
ResultSet rs1 = null;
ResultSet rs2 = null;
ResultSet rs3 = null;
ResultSetMetaData rsmd1=null;
ResultSetMetaData rsmd2=null;
ResultSetMetaData rsmd3=null;
query1.Open(request);
XmlRequest query2 = query1.GetDetail(0);//得到从表
Param name=query1.GetParam("sale_id");
if(name==null) {
subSQL="";
}
else {
if(name.Value!=null)
sale_id=Integer.parseInt(name.Value);
if(sale_id!=-10000&&name.Value!=null)
subSQL=" where SALE_ID="+sale_id;
else
subSQL="";
}
//处理主表数据
try {
String drivers = "sun.jdbc.odbc.JdbcOdbcDriver";
System.setProperty("jdbc.drivers",drivers);
String username = "";
String password = "";
String url = "jdbc:odbc:jcldemo";
con1=DriverManager.getConnection(url,username,password);
con2=DriverManager.getConnection(url,username,password);
con3=DriverManager.getConnection(url,username,password);
stmt1 = con1.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt2 = con2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt3 = con3.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql1="select * from sale"+subSQL;
String sql2="select * from item";
rs1=stmt1.executeQuery(sql1);
rsmd1=rs1.getMetaData();
rs2=stmt2.executeQuery(sql2);
rsmd2=rs2.getMetaData();
//处理主表字段
for(int i=1;i<=rsmd1.getColumnCount();i++) {
if(rsmd1.getColumnTypeName(i).equals("STRING")) {
query1.AddField(rsmd1.getColumnName(i),rsmd1.getColumnTypeName(i),rsmd1.getPrecision(i));
}
else {
query1.AddField(rsmd1.getColumnName(i),rsmd1.getColumnTypeName(i));
}
}
//处理从表字段
for(int j=1;j<=rsmd2.getColumnCount();j++) {
if(rsmd2.getColumnTypeName(j).equals("STRING")) {
query2.AddField(rsmd2.getColumnName(j),rsmd2.getColumnTypeName(j),rsmd2.getPrecision(j));
}
else {
query2.AddField(rsmd2.getColumnName(j),rsmd2.getColumnTypeName(j));
}
}
//处理主表数据
int i=0;
while(rs1.next()) {
i++;
query1.Append();
for(int j=1;j<=rsmd1.getColumnCount();j++) {
rs1.absolute(i);
id=rs1.getInt("SALE_ID");
query1.SetValue(rsmd1.getColumnName(j), rs1.getString(j));
}
String sql3="select * from item where ITEM_ID="+id;
rs3=stmt3.executeQuery(sql3);
rsmd3=rs3.getMetaData();
//处理从表数据
int k=0;
while(rs3.next()) {
k++;
query2.Append();
for(int l=1;l<=rsmd3.getColumnCount();l++) {
rs3.absolute(k);
query2.SetValue(rsmd3.getColumnName(l), rs3.getString(l));
}
}
}
out.println(query1.GetXml());
if(rs1!=null)
rs1.close();
if(rs2!=null)
rs2.close();
if(rs3!=null)
rs3.close();
con1.close();
con2.close();
con3.close();
} catch(Exception e) {
if(rs1!=null)
rs1.close();
if(rs2!=null)
rs2.close();
if(rs3!=null)
rs3.close();
con1.close();
con2.close();
con3.close();
e.printStackTrace();
query1.Error = e.getMessage();
out.println(query1.GetXml());
}

%>