Erro ao executar uma procedure

5 respostas
F

Ola pessoal

Tenho uma procedure com 7 parâmetros criada no SQL Server 2008. Essa procedure faz um “select” porém está parando na linha:

" ResultSet rs = callable.executeQuery(); ": Veja essa linha abaixo:

[b]

public Vector PesquisarAgenda(Agenda objAgenda) throws SQLException

{

Conexao conexao = new Conexao();

Vector linhas = new Vector();
CallableStatement callable = conexao.getConexao().prepareCall("{call pesquisaragenda(?,?,?,?,?,?,?)}");

    ResultSet rs = callable.executeQuery();

         while(rs.next())
        {
            objAgendaPesquisa = new AgendaPesquisa();
            objAgendaPesquisa.setDoutor(rs.getString("doutor"));
            objAgendaPesquisa.setNome(rs.getString("nome"));
            objAgendaPesquisa.setData(rs.getDate("data"));
            objAgendaPesquisa.setHora(rs.getString("hora"));
            objAgendaPesquisa.setTipoagendamento(rs.getString("tipoagendamento"));
            objAgendaPesquisa.setStatus(rs.getString("status"));
            
            
            Vector novalinha = new Vector();
            novalinha.addElement(objAgendaPesquisa.getDoutor());
            novalinha.addElement(objAgendaPesquisa.getNome());
            novalinha.addElement(objAgendaPesquisa.getData());
            novalinha.addElement(objAgendaPesquisa.getHora());
            novalinha.addElement(objAgendaPesquisa.getTipoagendamento());
            novalinha.addElement(objAgendaPesquisa.getStatus());
            
            linhas.addElement(novalinha);

        }
    return linhas;

}
[/b]

O que pode ser ?

5 Respostas

R

Qual é o erro?

alves.Felipe

onde que esta sendo passado os valores dos 8 parametros?

F

O objeto está pegando os valores dos campos conforme abaixo:

objAgendaPesquisa = new AgendaPesquisa();

objAgendaPesquisa.setDoutor(jcbAg_PesquisaDoutor.getSelectedItem().toString());
objAgendaPesquisa.setNome(jcbAg_PesquisaPaciente.getSelectedItem().toString());
objAgendaPesquisa.setDatainicial(jftAg_PesquisaDataInicial.getDate());
objAgendaPesquisa.setDatafinal(jftAg_PesquisaDataFinal.getDate());

objAgendaPesquisa.setTipoagendamento(jcbAg_PesquisaTipo.getSelectedItem().toString());

objAgendaPesquisa.setHora(jftAg_PesquisaHora.getText());

objAgendaPesquisa.setStatus(jcbAg_PesquisaStatus.getSelectedItem().toString());

Estou desconfiando da data, pois no objeto a data de 04/08/2011 está como : " Thu Aug 04 21:42:32 BRT 2011 "

F

Minha Procedure criada no banco SQL SERVER 2008:

ALTER PROCEDURE pesquisaragenda(

<a class="mention" href="/u/doutor">@doutor</a>                     varchar(30),

<a class="mention" href="/u/nome">@nome</a>                      nvarchar(max),

@datainicial                date,

@datafinal                  date,

@hora                        varchar(5),

@tipoagendamento      varchar(10),

@status                      varchar(15)

)

as

begin

SELECT doutor, nome, data, hora, tipoagendamento, status

FROM agenda

WHERE

( doutor                = <a class="mention" href="/u/doutor">@doutor</a>                    or    <a class="mention" href="/u/doutor">@doutor</a>               is null )

AND ( nome                 = <a class="mention" href="/u/nome">@nome</a>                     or    <a class="mention" href="/u/nome">@nome</a>                 is null )

AND ( data                 >= @datainicial              or    @datainicial           is null )

AND ( data                 <= @datafinal                or    @datafinal             is null )

AND	( hora                   = @hora                      or    @hora                   is null )

AND ( tipoagendamento = @tipoagendamento   or    @tipoagendamento is null )

AND ( status                 = @status                    or    @status                 is null )	

end
F

A mensagem de erro é essa abaixo:

GRAVE: null
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Campo COUNT incorreto ou erro de sintaxe

Criado 1 de agosto de 2011
Ultima resposta 3 de ago. de 2011
Respostas 5
Participantes 3