Здравствуйте!БД IBM DB2 for OS/390(мэйнфрейм)
Первая версия - лезет в ТАБЛИЦЫ DB2 на удалённую машину через Web сервер Tomcat, который установлен локально! (используется DB2 Client). Всё работает!
Вторая версия - работа с теми же таблицами DB2 под WSAS( WSAS установлена на самом мейнфрейме- на удалённой машине). Первая JSP-ка отрабатывает, в которой тоже есть запрос к БД, а вторая выдаёт вот эту ошибку.
Вот код программы -
<%@ page contentType="text/html; charset=windows-1251" %>
<%@page import="javax.servlet.*"%>
<%@page import="javax.servlet.http.*"%>
<%@page import="java.io.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Random"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.Context"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.NamingException"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.SQLException"%>
<%!
public static String Zamena_na_AYA(String source)
{
String Result;
int Osn_chast = source.length()-7;
Result=source.substring(0,Osn_chast)+"ая ж.д.";
return Result;
}
%>
<%
String kod_dorogi = request.getParameter("KOD_DOR");
String INFORMATION = request.getParameter("USTAR");
String IDENTIFIKATOR= request.getParameter("Ident_pods");
String TIP_OBJEKTA = request.getParameter("Tip_objekta");
//System.out.println("kod_dorogi = "+kod_dorogi);
//System.out.println("IDENTIFIKATOR = "+IDENTIFIKATOR);
//System.out.println("TIP_OBJEKTA = "+TIP_OBJEKTA);
String naim_dor="";
switch (Integer.parseInt(kod_dorogi))
{
case 1:
naim_dor="Октябрьской ж.д.";
break;
case 10:
naim_dor="Калининградской ж.д.";
break;
case 17:
naim_dor="Московской ж.д.";
break;
case 24:
naim_dor="Горьковской ж.д.";
break;
case 28:
naim_dor="Северной ж.д.";
break;
case 51:
naim_dor="Северо-Кавказской ж.д.";
break;
case 58:
naim_dor="Юго-Восточной ж.д.";
break;
case 61:
naim_dor="Приволжской ж.д.";
break;
case 63:
naim_dor="Куйбышевской ж.д.";
break;
case 76:
naim_dor="Свердловской ж.д.";
break;
case 80:
naim_dor="Южно-Уральской ж.д.";
break;
case 83:
naim_dor="Западно-Сибирской ж.д.";
break;
case 88:
naim_dor="Красноярской ж.д.";
break;
case 92:
naim_dor="Восточно-Сибирской ж.д.";
break;
case 94:
naim_dor="Забайкальской ж.д.";
break;
case 96:
naim_dor="Дальневосточной ж.д.";
break;
case 99:
naim_dor="Сахалинской ж.д.";
break;
}
//System.out.println("naim_dor = "+naim_dor);
//System.out.println("kod_dorogi = "+kod_dorogi );
// Подключение к базе данных мэйнфрейма с файлом настройки
//String bdName = getServletContext().getInitParameter("DBN");
//String UserID = getServletContext().getInitParameter("UID");
//String Password = getServletContext().getInitParameter("PWD");
//Квалификатор базы данных
//String Qualifier_OTT = getServletContext().getInitParameter("QUADB");
//String Driver = getServletContext().getInitParameter("DRV");
//-------- НИКАКОГО КЭШИРОВАНИЯ!!!!! --------------------------
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-store");
String SQL_PROGRAMMA = "";
if ((IDENTIFIKATOR.equals("***") || IDENTIFIKATOR.equals("DOD"))&&TIP_OBJEKTA.equals("P") )
{
SQL_PROGRAMMA = "SELECT DISTINCT XXX.R_NM_OBJ, XXX.R_DL_MOD, XXX.R_DATE_SOZD FROM"+
" ASP2QB.SKFE_REG XXX, (SELECT R_NM_OBJ AS C1, MAX(R_TIME_SR) AS MAXC"+
" FROM ASP2QB.SKFE_REG WHERE R_TYP_OBJ='"+TIP_OBJEKTA+"' AND R_ID_SS='"+IDENTIFIKATOR+"' AND R_RES='Y' AND"+
" R_KOD_DOR='"+kod_dorogi+"' GROUP BY R_NM_OBJ) YYY WHERE XXX.R_NM_OBJ=YYY.C1"+
" AND XXX.R_TIME_SR=YYY.MAXC AND XXX.R_KOD_DOR='"+kod_dorogi+"' AND XXX.R_TYP_OBJ='"+TIP_OBJEKTA+"' AND XXX.R_ID_SS='"+IDENTIFIKATOR+"' AND XXX.R_RES='Y' WITH UR";
//System.out.println("SQL_PROGRAMMA= "+SQL_PROGRAMMA);
}
else
{
SQL_PROGRAMMA = "SELECT DISTINCT XXX.R_NM_OBJ FROM"+
" ASP2QB.SKFE_REG XXX, (SELECT R_NM_OBJ AS C1, MAX(R_TIME_SR) AS MAXC"+
" FROM ASP2QB.SKFE_REG WHERE R_TYP_OBJ='"+TIP_OBJEKTA+"' AND R_ID_SS='"+IDENTIFIKATOR+"' AND R_RES='Y' AND"+
" R_KOD_DOR='"+kod_dorogi+"' GROUP BY R_NM_OBJ) YYY WHERE XXX.R_NM_OBJ=YYY.C1"+
" AND XXX.R_TIME_SR=YYY.MAXC WITH UR";
}
//System.out.println("SQL_PROGRAMMA = "+SQL_PROGRAMMA );
String MASSIV_SQL_PROGRAMMA[][];
MASSIV_SQL_PROGRAMMA = new String[5000][4];
/*try
{
Class.forName (Driver);
}
catch (ClassNotFoundException ex)
{
System.err.println(" Connection error. Driver JDBC/ODBC not found! ***");
}*/
DataSource pool = null;
String qualifier;
Context env = null;
Connection con = null;
try
{
env = (Context) new InitialContext().lookup("java:comp/env");
//ищем DataSource, который представляет пул соединений
pool = (DataSource) env.lookup("jdbc/DB2D_SPA");
if (pool==null) throw new SecurityException("'jdbc/DB2D_SPA' is an unknown DataSource!");
//qualifier = (String) env.lookup("qualifier");
//if (qualifier==null) throw new SecurityException("'Qualifier' is an unknown Environment Parameter!");
}
catch (NamingException ne)
{
ne.printStackTrace();
throw new NullPointerException( "Не возможно создать соединение с базой данных! Message:"+ne.getMessage() );
// System.err.println ("\?????? ???????????? ????!");
// System.err.println ("-----------------------------------------");
// System.err.println (ne);
// session.setAttribute("ERR","Error name: "+ne);
// session.setAttribute("ERR_DESCRIPTION","?????? ?????");
// response.sendRedirect("error.jsp");
// return;
}
try
{
con = pool.getConnection();
// Устанавливаем уровень изоляции - грязное чтение
con.setTransactionIsolation( con.TRANSACTION_READ_UNCOMMITTED );
int numCols = 0;
Statement stmt = con.createStatement ();
ResultSet Rst3 = stmt.executeQuery (SQL_PROGRAMMA);
// Получить the ResultSetMetaData. Они будут использованы для печати заголовков
ResultSetMetaData rsmd = Rst3.getMetaData ();
// Получить число столбцов в результирующем наборе
numCols = rsmd.getColumnCount ();
for(int i=0;i<5000;i++)
{
for (int j=0;j<4;j++)
{
MASSIV_SQL_PROGRAMMA[i][j]="";
}
}
int n_records=0;
while (Rst3.next())
{
for (int i=1; i<=numCols; i++)
{
String Tmp="";
Tmp=Rst3.getString(i);
if (Tmp==null)
{
MASSIV_SQL_PROGRAMMA[n_records][i]="";
}
else
{
MASSIV_SQL_PROGRAMMA[n_records][i]=Tmp.trim();
}
//String Tmp=Rst.getString(i).trim();
//MASSIV_SQL_PROGRAMMA[n_records][i]=Tmp.trim();
//System.out.println("MASSIV_SQL_PROGRAMMA["+n_records+"]["+i+"] = "+MASSIV_SQL_PROGRAMMA[n_records][i]);
}
n_records++;
}
Rst3.close();
ResultSet Rst4=null;
String SQL_TO_ETALON[];
SQL_TO_ETALON = new String[5000];
String MASSIV_SQL_PROGRAMMA_ETALON[][];
MASSIV_SQL_PROGRAMMA_ETALON = new String[5000][4];
for(int i=0;i<5000;i++)
{
for (int j=0;j<4;j++)
{
MASSIV_SQL_PROGRAMMA_ETALON[i][j]="";
}
}
for (int i=0;i<n_records;i++)
{
if ((IDENTIFIKATOR.equals("***") || IDENTIFIKATOR.equals("DOD"))&&TIP_OBJEKTA.equals("P") )
{
SQL_TO_ETALON[i]="SELECT E_NM_OBJ, E_DL_MOD,E_DATE_SOZD FROM ASP2QB.SKFE_ETALON WHERE E_TYP_OBJ='"+TIP_OBJEKTA+"' AND E_ID_SS='"+IDENTIFIKATOR+"' AND E_NM_OBJ='"+MASSIV_SQL_PROGRAMMA[i][1]+"' WITH UR";
}
else
{
SQL_TO_ETALON[i]="SELECT E_NM_OBJ FROM ASP2QB.SKFE_ETALON WHERE E_TYP_OBJ='"+TIP_OBJEKTA+"' AND E_ID_SS='"+IDENTIFIKATOR+"' AND E_NM_OBJ='"+MASSIV_SQL_PROGRAMMA[i][1]+"' WITH UR";
}
//System.out.println("SQL_TO_ETALON["+i+"] = "+SQL_TO_ETALON[i]);
//System.out.println();
}
int n_records1=0;
for (int i=0;i<n_records;i++)
{
Rst4 = stmt.executeQuery (SQL_TO_ETALON[i]);
numCols = rsmd.getColumnCount ();
while (Rst4.next())
{
for (int j=1; j<=numCols; j++)
{
String Tmp=Rst4.getString(j).trim();
MASSIV_SQL_PROGRAMMA_ETALON[n_records1][j]=Tmp.trim();
//System.out.println("MASSIV_SQL_PROGRAMMA_ETALON["+n_records1+"]["+j+"] = "+Tmp);
}
n_records1++;
}
}
Rst4.close();
//Закрыть оператор
stmt.close();
// Закрыть соединение
con.close();
%>
<%
if (MASSIV_SQL_PROGRAMMA[0][1].equals(""))
{%>
<html>
<head>
<%
if (TIP_OBJEKTA.equals("P"))
{%>
<title>Расхождение длины и/или даты программ по <%=naim_dor%></title>
<%}
%>
<%
if (TIP_OBJEKTA.equals("M"))
{%>
<title>Расхождение массивов НСИ по <%=naim_dor%></title>
<%}
%>
<%
if (TIP_OBJEKTA.equals("T"))
{%>
<title>Расхождение таблиц НСИ по <%=naim_dor%></title>
<%}
%>
<%
if (TIP_OBJEKTA.equals("D"))
{%>
<title>Расхождение DBRM по <%=naim_dor%></title>
<%}
%>
<META http-equiv=pragma content=no-cashe>
<META http-equiv=expires content="Sat, 05 Nov 2004 00:00:00 GMT">
<META content="Web-ARM GVC" name=description>
<META content="Arm-SKFE, GVC" name=keywords>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<script language="JavaScript">
function Escape()
{
window.close();
}
</script>
<body bgcolor="#82C0FF" leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginwidth="0"
marginheight="0">
<br>
<%
if (TIP_OBJEKTA.equals("P"))
{%>
<h1 align="center">Расхождение длины и/или даты программ по <%=naim_dor%> отсутствуют! </h1>
<%}
%>
<%
if (TIP_OBJEKTA.equals("M"))
{%>
<h1 align="center">Расхождение массивов НСИ по <%=naim_dor%> отсутствуют! </h1>
<%}
%>
<%
if (TIP_OBJEKTA.equals("T"))
{%>
<h1 align="center">Расхождение таблиц НСИ по <%=naim_dor%> отсутствуют! </h1>
<%}
%>
<%
if (TIP_OBJEKTA.equals("D"))
{%>
<h1 align="center">Расхождение DBRM по <%=naim_dor%> отсутствуют! </h1>
<%}
%>
<br>
<br>
<br>
<br>
<br>
<table width="70%" border="0" align="center">
<tr>
<td align="center"><div align="rleft"><input type="button" value="Закрыть окно" title="Нажмите на кнопку для того чтобы закрыть окно" onClick="Escape()"></div></td>
</tr>
</table>
</body>
</html>
<%}
else
{
if ((IDENTIFIKATOR.equals("***") || IDENTIFIKATOR.equals("DOD"))&&TIP_OBJEKTA.equals("P") )
{
%>
<html>
<head>
<title>Расхождение длины и/или даты программ по <%=naim_dor%></title>
<META http-equiv=pragma content=no-cashe>
<META http-equiv=expires content="Sat, 05 Nov 2004 00:00:00 GMT">
<META content="Web-ARM GVC" name=description>
<META content="Arm-SKFE, GVC" name=keywords>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<script language="JavaScript">
function Escape()
{
window.close();
}
</script>
<body bgcolor="#82C0FF" leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginwidth="0"
marginheight="0">
<br>
<h1 align="center">Расхождение длины и/или даты программ по <%=naim_dor%>! </h1>
<br>
<br>
<% if (INFORMATION.equals("0"))
{%>
<h1 align="center" ><font color="#FFFF66" face="Verdana, Arial, Helvetica, sans-serif">Информация по <%=naim_dor%> является устаревшей! </font></h1>
<%
}
%>
<br>
<br>
<br>
<table width="70%" border="1" align="center" bgcolor="#409FFF">
<tr>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Эталон ГВЦ/<%=Zamena_na_AYA(naim_dor)%>(<%=kod_dorogi%>)</font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Имя объекта(модуля)</font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Длина</font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Дата</font></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<%
for (int i=0;i<n_records;i++)
{
for (int j=0;j<n_records1;j++)
{
if (MASSIV_SQL_PROGRAMMA[i][1].equals(MASSIV_SQL_PROGRAMMA_ETALON[j][1]))
{
int k=0;
int d=0;
if (MASSIV_SQL_PROGRAMMA[i][2].equals(MASSIV_SQL_PROGRAMMA_ETALON[j][2]))
{
k=1; //Длина равна
}
if (MASSIV_SQL_PROGRAMMA[i][3].equals(MASSIV_SQL_PROGRAMMA_ETALON[j][3]))
{
d=1; //Дата равна
}
%>
<tr>
<td width="25%" bgcolor="#0073E6" rowspan="2"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=i+1%></font></td>
<td width="25%" bgcolor="#0073E6" rowspan="2"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA_ETALON[j][1]%></font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA_ETALON[j][2]%></font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA_ETALON[j][3]%></font></td>
</tr>
<tr>
<%
if (k==0)
{%>
<td width="25%" bgcolor="#FF0000"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA[i][2]%> </font></td>
<% }
else
{%>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA[i][2]%></font></td>
<% }
if (d==0)
{%>
<td width="25%" bgcolor="#FF0000"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA[i][3]%> </font></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<%
}
else
{%>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA[i][3]%></font></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<%
}
}
}
}
%>
</table>
<br>
<table width="70%" border="0" align="center">
<tr>
<td align="center"><div align="rleft"><input type="button" value="Закрыть окно" title="Нажмите на кнопку для того чтобы закрыть окно" onClick="Escape()"></div></td>
</tr>
</table>
</body>
</html>
<%
}
else
{%>
<html>
<head>
<%
if (TIP_OBJEKTA.equals("M"))
{%>
<title>Расхождение массивов НСИ по <%=naim_dor%></title>
<%}
%>
<%
if (TIP_OBJEKTA.equals("T"))
{%>
<title>Расхождение таблиц НСИ по <%=naim_dor%></title>
<%}
%>
<%
if (TIP_OBJEKTA.equals("D"))
{%>
<title>Расхождение DBRM по <%=naim_dor%></title>
<%}
%>
<META http-equiv=pragma content=no-cashe>
<META http-equiv=expires content="Sat, 05 Nov 2004 00:00:00 GMT">
<META content="Web-ARM GVC" name=description>
<META content="Arm-SKFE, GVC" name=keywords>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<script language="JavaScript">
function Escape()
{
window.close();
}
</script>
<body bgcolor="#82C0FF" leftMargin=0 topMargin=0 rightMargin=0 bottomMargin=0 marginwidth="0"
marginheight="0">
<br>
<%
if (TIP_OBJEKTA.equals("M"))
{%>
<h1 align="center">Расхождение массивов НСИ по <%=naim_dor%>! </h1>
<%}
%>
<%
if (TIP_OBJEKTA.equals("T"))
{%>
<h1 align="center">Расхождение таблиц НСИ по <%=naim_dor%>! </h1>
<%}
%>
<%
if (TIP_OBJEKTA.equals("D"))
{%>
<h1 align="center">Расхождение DBRM по <%=naim_dor%>! </h1>
<%}
%>
<br>
<br>
<% if (INFORMATION.equals("0"))
{%>
<h1 align="center" ><font color="#FFFF66" face="Verdana, Arial, Helvetica, sans-serif">Информация по <%=naim_dor%> является устаревшей! </font></h1>
<%
}
%>
<br>
<br>
<br>
<table width="70%" border="1" align="center" bgcolor="#409FFF">
<tr>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Эталон ГВЦ/<%=Zamena_na_AYA(naim_dor)%>(<%=kod_dorogi%>)</font></td>
<%
if (TIP_OBJEKTA.equals("M"))
{%>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Имя объекта(IDTZAP[KLOB] массива)</font></td>
<% }
%>
<%
if (TIP_OBJEKTA.equals("T"))
{%>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Имя объекта(таблицы)</font></td>
<% }
%>
<%
if (TIP_OBJEKTA.equals("D"))
{%>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Имя объекта(DBRM)</font></td>
<% }
%>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<tr>
<td colspan="4" bgcolor="#0073E6"></td>
</tr>
<%
for (int i=0;i<n_records;i++)
{
for (int j=0;j<n_records1;j++)
{
if (MASSIV_SQL_PROGRAMMA[i][1].equals(MASSIV_SQL_PROGRAMMA_ETALON[j][1]))
{
%>
<tr>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=i+1%></font></td>
<td width="25%" bgcolor="#FF0000"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA_ETALON[j][1]%></font></td>
</tr>
<%
break;
}
else
{
if (j==(n_records1-1))
{
System.out.println("J= "+j);
%>
<tr>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=i+1%></font></td>
<td width="25%" bgcolor="#0073E6"><font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><%=MASSIV_SQL_PROGRAMMA_ETALON[j][1]%> отсутствует в эталоне</font></td>
</tr>
<% }
}
}
}
%>
</table>
<br>
<table width="70%" border="0" align="center">
<tr>
<td align="center"><div align="rleft"><input type="button" value="Закрыть окно" title="Нажмите на кнопку для того чтобы закрыть окно" onClick="Escape()"></div></td>
</tr>
</table>
</body>
</html>
<% }
}
}
catch (SQLException exe)
{
while (exe != null)
{
//System.out.println ("***check_user.jsp. Error. SQLException! ***");
//System.out.println ("SQLState: " + exe.getSQLState());
String ErrorMessage = exe.getMessage();
//System.out.println ("Message: " + ErrorMessage);
//System.out.println ("Vendor: " + exe.getErrorCode());
//Выдаем HTML для информации об ошибке
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0037) -->
<HTML>
<HEAD>
<TITLE>МЭЙНФРЕЙМ НЕ РАБОТАЕТ или во время выполнения SQL произошла ошибка</TITLE>
<META http-equiv=pragma content=no-cashe>
<META http-equiv=expires content="Won, 10 Oct 2006 00:00:00 GMT">
<META content="Web-ARM GVC" name=description>
<META content="Arm-SKFE, GVC" name=keywords>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2715.400" name=GENERATOR></HEAD>
</HEAD>
<BODY>
<h1 align="center">
МЭЙНФРЕЙМ НЕ РАБОТАЕТ или во время
<br>выполнения SQL произошла ошибка
</h1>
<P>
Сообщение об ошибке:<%=ErrorMessage %>
<br>
SQLState: <%=exe.getSQLState()%>
<br>
Vendor: <%=exe.getErrorCode()%>
<br>
</BODY>
</HTML>
<%exe = exe.getNextException ();
}
}
%>
И вот что она выбрасывает -
МЭЙНФРЕЙМ НЕ РАБОТАЕТ или во время
выполнения SQL произошла ошибка
Сообщение об ошибке:DSRA9110E: ResultSet is closed.
SQLState: null
Vendor: 0
P.S.
Одни и теже таблицы, у них одно и тоже содержимое.
В одном случае работает, в другом ОШИБКА!
Где подвох..........
С уважением Владимир!