你把存储过程的代码写成普通的SQL语句就行了: StringBuffer sql = new StringBuffer("declare @max_mid integer;declare @max_mserialno integer;");
sql.append("set @max_mid=(select max(M_ID)+1 from S_T_Menu);");
sql.append("set @max_mserialno = (select max(M_SerialNO)+1 from S_T_Menu where M_ParentMenuID="+M_ParentMenuID+");");
sql.append("if(@max_mserialno is null) set @max_mserialno=1;");
sql.append("insert into S_T_Menu(M_ID,M_isSubMenu,M_ParentMenuID,M_CNName,M_EnName,M_URL,M_TargetFrameName,M_SerialNO)");
sql.append("values(@max_mid,1,?,?,?,?,?,@max_mserialno);"); PreparedStatement pstmt = pdb.getPrepareStatement(sql.toString());
以上虽不是存储过程,但已经表达了我的意思.
sql.append("set @max_mid=(select max(M_ID)+1 from S_T_Menu);");
sql.append("set @max_mserialno = (select max(M_SerialNO)+1 from S_T_Menu where M_ParentMenuID="+M_ParentMenuID+");");
sql.append("if(@max_mserialno is null) set @max_mserialno=1;");
sql.append("insert into S_T_Menu(M_ID,M_isSubMenu,M_ParentMenuID,M_CNName,M_EnName,M_URL,M_TargetFrameName,M_SerialNO)");
sql.append("values(@max_mid,1,?,?,?,?,?,@max_mserialno);"); PreparedStatement pstmt = pdb.getPrepareStatement(sql.toString());
以上虽不是存储过程,但已经表达了我的意思.
sql.append(" set @unit=? ");
sql.append(" set @grade=? ");
sql.append(" set @parent=? ");加上SQL结束符(SQL server 2000: 分号)
sql.append(" set @unit=?; ");
sql.append(" set @grade=?; ");
sql.append(" set @parent=?; ");其他类似.