Update no SQL

3 respostas
T

Boa tarde.

Galera estou com um problema:
Tenho um método que faz update no meu Banco, ele atualiza a data e insere um resultado.
Este método chama uma Procedure, mas o problema é…Não estou conseguindo chamá-la.
Tentei com {Call} com Statement, Create, com tudo e nada do que tentei foi…

Segue o código do método :

public void InsereResultado() {
        //Criar um método que selecione os chamados com Status 2 e se este consultado estiver Fechado...
        //...retornar que não é possível inserir resultado por isso!
        Statement st;
        try {

            st = cx.fazConexao().createStatement();
            CallableStatement stm = cx.fazConexao().prepareCall("{ call AtualizaDataFinal ?,?,? }");
            stm.setString(1, form.getResultado());
            stm.setString(2, "2");
            stm.setInt(3, form.getProtocolo());
            stm.execute();


        } catch (SQLException e) {
            e.printStackTrace();
        }



    }

Como faço isso, alguém pode ajudar?

3 Respostas

drsmachado

Qual o banco de dados?
Qual o erro retornado nas tentativas?

emmanuelrock

Essa linha:

CallableStatement stm = cx.fazConexao().prepareCall("{ call AtualizaDataFinal (?,?,?) }");

não seria assim?

Com parênteses.

T
O erro que retorna é esse:

com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near {.

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1373)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:371)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:322)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:160)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:133)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:304)

SQL Server 2008.

Consegui!!
tinha tentado antes com (), mas acho que outro parâmetro estava incorreto.
Agora com tudo certo foi…

Valeu man! :slight_smile:

Criado 10 de fevereiro de 2011
Ultima resposta 10 de fev. de 2011
Respostas 3
Participantes 3