Connection SQL Server 2008

2 respostas
B

Pessoal, preciso da ajuda de vocês...

Preciso conectar com um banco de dados do SQL. Criei uma classe de conexão, veja abaixo.

public class DbController {

    public Connection con;

    public DbController() throws SQLException{

        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    

            this.con = DriverManager.getConnection("jdbc:odbc:Driver=SQL Server;Server=localhost;Database=RFID;Uid=sa;pwd=119696");


            System.out.println("Conectado ao banco");
       
        }catch(ClassNotFoundException ex){

            System.out.println(ex.getMessage());
        }

    }

    public Connection getConnection(){
        return this.con;
    }

}

Tenho um JButton realiza o seguinte comando.

String sql = "INSERT into Material (Descricao) VALUES ('"+descricao.getText()+"')";
            try {
            Connection con = new DbController().getConnection();
            
            Statement st = con.createStatement();
            st.executeUpdate(sql);
            JOptionPane.showMessageDialog(null, "OK");
            descricao.setText("");
            } catch (SQLException ex) {
            Logger.getLogger(CadastrarMaterial.class.getName()).log(Level.SEVERE, null, ex);
            }
Quando executo a minha aplicação, aparece o erro abaixo.
04/12/2010 12:14:37 tcc.CadastrarMaterial jButton1ActionPerformed
GRAVE: null
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Comprimento inv?lido de cadeia de caracteres ou de buffer
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
        at sun.jdbc.odbc.JdbcOdbcConnection.buildTypeInfo(JdbcOdbcConnection.java:1503)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:381)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:207)
        at tcc.DbController.<init>(DbController.java:26)
        at tcc.CadastrarMaterial.jButton1ActionPerformed(CadastrarMaterial.java:139)
        at tcc.CadastrarMaterial.access$100(CadastrarMaterial.java:24)
        at tcc.CadastrarMaterial$2.actionPerformed(CadastrarMaterial.java:71)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Mas se eu faço um debug, colocando um ponto de parada na criação da String sql, e vou executando passo a passo ele finaliza e inclui o dado no banco de dados.

Alguem pode me ajudar?

Obrigado

2 Respostas

yoshikichi

http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

yoshikichi

da uma olhada na documentação, achei uma ótima referencia
http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

Criado 4 de dezembro de 2010
Ultima resposta 4 de dez. de 2010
Respostas 2
Participantes 2