使用ODBC数据源era连接MDB数据库,目的是查询表category中所有的目录,并按树形结构显示,
为了使用树形的结构,使用了递归调用,但是出错。如果不使用递归调用,就没问题。
这个应该是数据库连接不允许递归还是JAVA不支持递归还是我哪里搞错了?程序如下:
import java.sql.*;Connection conn = null;
Statement stmt = null;
private void DoConnect()
{
try
{
if (conn == null)
{
// 使用ODBC数据源era连接MDB数据库
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
String url="jdbc:odbc:era";
conn = DriverManager.getConnection(url,"","");
}
if(stmt == null) stmt = conn.createStatement();
}
catch (SQLException e)
{
}
}String sb = "";
/*
查找父目录的id为parentid下的所有子目录树。调用时parenti=0
参数:parentid,父目录的id
*/
public String getCategoryNode(String parentid)
{
String cid="";
ResultSet rs = null;
DoConnect(); // 连接数据库
try
{
String sql = "select CategoryID, Name from Category where ParentCategoryID=" + parentid + " order by Name";
rs = stmt.executeQuery (sql);
if (rs == null || !rs.next()) return "";
else
{
do
{
cid = rs.getString("CategoryID"); // 目录ID
sb += rs.getString("Name") + "\n";
sb += getCategoryNode(cid); // 递归调用,查找该目录下的所有子目录
}while (rs.next());
return sb;
}
}
catch (SQLException e)
{
return ("ERROR");
}
}
为了使用树形的结构,使用了递归调用,但是出错。如果不使用递归调用,就没问题。
这个应该是数据库连接不允许递归还是JAVA不支持递归还是我哪里搞错了?程序如下:
import java.sql.*;Connection conn = null;
Statement stmt = null;
private void DoConnect()
{
try
{
if (conn == null)
{
// 使用ODBC数据源era连接MDB数据库
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
String url="jdbc:odbc:era";
conn = DriverManager.getConnection(url,"","");
}
if(stmt == null) stmt = conn.createStatement();
}
catch (SQLException e)
{
}
}String sb = "";
/*
查找父目录的id为parentid下的所有子目录树。调用时parenti=0
参数:parentid,父目录的id
*/
public String getCategoryNode(String parentid)
{
String cid="";
ResultSet rs = null;
DoConnect(); // 连接数据库
try
{
String sql = "select CategoryID, Name from Category where ParentCategoryID=" + parentid + " order by Name";
rs = stmt.executeQuery (sql);
if (rs == null || !rs.next()) return "";
else
{
do
{
cid = rs.getString("CategoryID"); // 目录ID
sb += rs.getString("Name") + "\n";
sb += getCategoryNode(cid); // 递归调用,查找该目录下的所有子目录
}while (rs.next());
return sb;
}
}
catch (SQLException e)
{
return ("ERROR");
}
}
楼主【nataka】截止到2008-07-26 11:11:55的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:10 每贴平均分数:10
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:10
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html