Fala galera, td blz??
hoje que ta com problemas sou eu
aqui na empresa a grande maioria dos sistemas funcionam baseados em SPs no SQL Server, ate ai tudo normal, o lance todo é que na criação delas, a pessoa que criou a grande maioria delas, nao definiu os parametros de saida da SP. com o codigo abaixo estou atualmente recebendo esse erro The index 1 is out of range.
Exemplo:
CREATE PROCEDURE cot_acompanhamento_corretor_sps
@data_inicio smalldatetime,
@data_final smalldatetime
as
set nocount on
declare @corretor_id int
select PRODUTO, NOME_PRODUTO,RAZAO_SOCIAL, CORRETOR FROM ...
...
...
..
ou seja, entro com duas datas (data_inicio e data_final )e o as minhas saidas são PRODUTO, NOME_PRODUTO,RAZAO_SOCIAL, CORRETOR, …
o Meu codigo ficou assim:
import java.sql.*;
public class Dao {
ResultSet rs;
PreparedStatement stmt;
Connection con;
CallableStatement cs;
public void open() throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://co01;databaseName=int_corretagem_db", "root", "root");
}
public void close() throws Exception {
con.close();
}
}
import entity.*;
import java.sql.*;
import java.util.*;
public class RelatorioDao extends Dao {
public List<Relatorio> findAll(String dataInicial, String dataFinal) throws Exception {
List<Relatorio> retorno = new ArrayList<Relatorio>();
open();
cs = con.prepareCall("cot_acompanhamento_corretor_sps '?','?'");
cs.setString(1, dataInicial);
cs.setString(2, dataFinal);
rs = cs.executeQuery();
while (rs.next()) {
Relatorio rel = new Relatorio();
rel.setProduto(rs.getString("PRODUTO"));
rel.setNomeProduto(rs.getString("NOME_PRODUTO"));
rel.setRazaoSocial(rs.getString("RAZAO_SOCIAL"));
rel.setCorretor(rs.getString("CORRETOR"));
retorno.add(rel);
}
stmt.close();//fecha tabela
close();//fecha o banco
return retorno;
}
}
public class Relatorio {
private String produto;
private String nomeProduto;
private String razaoSocial;
private String corretor;
public Relatorio() {
}
public Relatorio(String produto, String nomeProduto, String razaoSocial, String corretor) {
this.produto = produto;
this.nomeProduto = nomeProduto;
this.razaoSocial = razaoSocial;
this.corretor = corretor;
}
public String getCorretor() {
return corretor;
}
public void setCorretor(String corretor) {
this.corretor = corretor;
}
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getProduto() {
return produto;
}
public void setProduto(String produto) {
this.produto = produto;
}
public String getRazaoSocial() {
return razaoSocial;
}
public void setRazaoSocial(String razaoSocial) {
this.razaoSocial = razaoSocial;
}
}
Essa é a pagina que esta chamando tudo, estou apenas testando a execução da SP, mais tarde irei colocar isso em um servlet.
<%@page import="entity.*" %>
<%@page import="persistence.*" %>
<html>
<head>
<title>Relatorio</title>
</head>
<body>
<%
RelatorioDao rd = new RelatorioDao();
try {
for (Relatorio rel : rd.findAll("2010-08-01", "2010-08-10")) {
out.print(rel.toString());
}
} catch (Exception e) {
out.print("erro: " + e.getMessage());
e.getStackTrace();
}
%>
</body>
</html>
Gostaria da ajuda dos colegas para saber aonde estou errando, ou o que pode estar faltando algo em meu programa
desde ja agradeço a atenção de todos.
Abração 8)
Max