Pessoal,
tenho a seguinte dúvida:
Via JSP, chamo uma stored procedure que retorna uma consulta (uma tabela com 11 colx112 linhas) que é gerada dinamicamente no SQLServer.
Só preciso mostrar os resultados em tela.
Já fiz c/ DAO+Netbeans, mas por questões 'administrativas', preciso fazer conforme o padrão abaixo, ou seja, as ferramentas que tenho a diposição são: Notepad++ e SQLServer2008.
A parte do SQLServer já está ok (é apenas um SELECT, na verdade, que futuramente colocarei alguns parâmetros).
Como é minha 1ª vez, estou confuso pq o código jsp+html está todo misturado e espalhado, ainda não me familiarizei totalmente com essa forma (seria bem melhor linkedlist etc, mas aqui só tenho o arquivo jsp que acessa o SQLServer diretamente, nada de D.Pattern DAO, Factory, classes java p/ separar/arquiteturar um MVC etc).
Eis o código que fiz baseado no que fazem por aqui:
<%response.setHeader("Cache-Control","no-cache");%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%
session.setAttribute("Chave", "F1234567");
session.setAttribute("JDBC", "jdbc:sqlserver://meuEndereço;instanceName=SQLEXPRESS;database=ENCAD2011;user=sa;password=psw");
if(session.getAttribute("Chave")==null)
{
%>
<HTML>
Aguarde...
</HTML>
<SCRIPT>
parent.location.href="/uar/index.jsp";
</SCRIPT>
<%
}
else
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection cn = DriverManager.getConnection(session.getAttribute("JDBC").toString());
PreparedStatement db = cn.prepareStatement("{call ENCAD2011.dbo.uspVCart(?)}");
db.setInt(1, Integer.parseInt(PrefDep.toString())); <!-- Seria um getInt ? visto que PrefDep é um parâmetro que não uso na minha SProc. -->
ResultSet rs = db.executeQuery();
String HTML = "";
<!-- Para mostrar as Colunas pensei nisso -->
while(rs.next())
{
HTML += "<TR>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C1") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C2") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C3") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C4") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C5") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C6") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C7") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C8") + "</TD>"
+ "<TD ALIGN=LEFT CLASS=Tot>" + rs.getString("C9") + "</TD>"
+ "<TD ALIGN=RIGHT CLASS=Tot>" + rs.getString("C10") + "</TD>"
+ "<TD ALIGN=RIGHT CLASS=Tot>" + rs.getString("C11") + "</TD>"
+ "<TD ALIGN=RIGHT CLASS=Tot>" + rs.getString("C12") + "</TD>"
+ "<TD ALIGN=RIGHT CLASS=Tot>" + rs.getString("C13") + "</TD>"
+ "</TR>";
}
}
rs.close();
db.close();
cn.close();
%>
<LINK HREF="/upb/uar/principal/css/intranet.css" TYPE=text/css REL=stylesheet>
<STYLE>
INPUT
{width: 100%;}
A
{color: darkblue;}
TABLE
{background-color: #ffffff;
border-color: #000000;
border-style: solid;
border-left-width: 2;
border-top-width: 2;
border-bottom-width: 2;
border-right-width: 2;}
TH
{background-color: #999999;
border-color: #ffffff;
border-style: solid;
border-left-width: 0;
border-top-width: 1;
border-bottom-width: 0;
border-right-width: 1;
color: #ffffff;
font-family: tahoma;
font-size: 11;
height: 20;}
TD
{background-color: #ededed;
border-color: #ffffff;
border-style: solid;
border-left-width: 0;
border-top-width: 0;
border-bottom-width: 1;
border-right-width: 1;
color: #darkblue;
font-family: tahoma;
font-size: 11;
height: 20;}
INPUT
{background-color: #ededed;
border-color: #ffffff;
border-style: solid;
border-left-width: 1;
border-top-width: 0;
border-bottom-width: 1;
border-right-width: 1;
color: darkblue;
font-family: tahoma;
font-size: 11;
height: 20;}
.Tit
{background-color: #ffffff;
border-color: #ffffff;
border-style: none;
color: black;
font-family: arial;
font-size: 16;
font-weight: bold;
height: 20;}
.Tot
{background-color: #dadada;
border-top-color: darkgray;
border-bottom-color: #000000;
border-left-color: #ffffff;
border-right-color: #ffffff;
border-style: solid;
border-left-width: 1;
border-top-width: 2;
border-bottom-width: 2;
border-right-width: 1;
color: #000000;
font-family: tahoma;
font-size: 11;
font-weight: normal;
height: 20;}
</STYLE>
<HTML>
<TITLE>Meta de Cartões - Visâo Carteira</TITLE>
<BODY LEFTMARGIN=0 RIGHTMARGIN=0 TOPMARGIN=0 BOTTOMMARGIN=0
MARGINHEIGHT=0 MARGINWIDTH=0 STYLE="margin-left: 10;margin-top: 0;">
<BR>
<BR><BR>
<!-- 1) Tabela do Cabeçalho -->
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=98% STYLE="border-style: none;">
<TR>
<TD ALIGN=LEFT VALIGN=TOP WIDTH=70% CLASS="Tit" VALIGN=TOP>Ferramente Produtos X e y
<BR>Visão parcial</TD>
<TD ALIGN=RIGHT VALIGN=TOP WIDTH=30% CLASS="Tit" VALIGN=TOP>Posição em 01/07/2011</TD>
</TR>
</TABLE>
<FONT COLOR=BLUE>
<BR>[produto] = Quantidade de nºs ativos
<BR>[Inibida] = Quantidade de nº com função inibida
<BR>[Pendente] = Quantidade de produtos pendente de entrega
<BR>[soma] = total
<BR>
</FONT>
</TABLE>
<BR>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=98% STYLE="border-style: none;">
<%=HTML.toString()%>
</TABLE>
</FORM>
</BODY>
</HTML>
<%
}
%>
Alguém poderia me dar um passo a passo de como fazer funcionar ?
O que eu uso para armazenar no ResultSet uma coleção de registros ? Um getInt (vide linha 27) ?
Tenho que fazer um get para cada tipo de dados/coluna da minha tabela (por ex.: p/ armazenar um tipo varchar, tenho que executar getVarchar etc ?)
Agradeço pela ajuda.