Erro ao tentar inserir dado no banco Firebird

2 respostas
leodamasceno

Olá!
Instalei o firebird 2.0 super no Ubuntu 8.04, e estou utilizando como administrador do banco o FlamerObin!
Crio uma tabela nele, com o seguinte conteúdo:
Create table TABLE_NAME (
Nome VARCHAR(50)
);

E uso o código abaixo para fazer a conexão e inserir no campo nome, o conteúdo: Leo. Eu consigo fazer a conexão, tranquilamente... porém o código abaixo me retorna o seguinte erro:
run:
Mar 3, 2009 11:35:22 AM aprendizadojava.Banco <init>
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -206
Column unknown
LEO
At line 1, column 39
        at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:127)
        at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:41)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:90)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:869)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:824)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:817)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:293)
        at aprendizadojava.Banco.<init>(Banco.java:33)
        at aprendizadojava.Banco.main(Banco.java:46)
at org.firebirdsql.gds.GDSException: Dynamic SQL Error
SQL error code = -206
Column unknown
LEO
At line 1, column 39
        at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2169)
        at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2119)
        at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlPrepare(AbstractJavaGDSImpl.java:1529)
        at org.firebirdsql.gds.impl.GDSHelper.prepareStatement(GDSHelper.java:189)
        at org.firebirdsql.jdbc.AbstractStatement.prepareFixedStatement(AbstractStatement.java:1119)
        at org.firebirdsql.jdbc.AbstractPreparedStatement.prepareFixedStatement(AbstractPreparedStatement.java:1176)
        at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:124)
        at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:41)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:90)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:869)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:824)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:817)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:293)
        at aprendizadojava.Banco.<init>(Banco.java:33)
        at aprendizadojava.Banco.main(Banco.java:46)
BUILD SUCCESSFUL (total time: 2 seconds)
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package aprendizadojava;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author leonardo
 */
public class Banco {
    public Banco() {
        String url = "jdbc:firebirdsql:localhost/3050:/var/lib/firebird/2.0/system/base.fdb";
        String usuario = "sysdba";
        String senha = "masterkey";
        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            Connection con;
            try {
                con = DriverManager.getConnection(url, usuario, senha);
                Statement st = con.createStatement();
                PreparedStatement ps = con.prepareStatement("INSERT INTO TABLE_NAME (NOME) VALUES (Leo)");
                //st.executeUpdate("INSERT INTO TABELA (NOME) VALUES (Leo)");
            } catch (SQLException ex) {
                Logger.getLogger(Banco.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Banco.class.getName()).log(Level.SEVERE, null, ex);
        }



    }
    public static void main(String[] args) {
        Banco test = new Banco();
    }

}

2 Respostas

M

Ola,
O problema está no SQl…
Tenta Assim

PreparedStatement ps = con.prepareStatement(“INSERT INTO TABLE_NAME (NOME) VALUES (‘Leo’)”);

ou assim

PreparedStatement ps = con.prepareStatement(“INSERT INTO TABLE_NAME (NOME) VALUES (?)”);

ps.setstring(1,“Leo”);

Se tiver dúvida procura sobre JDBC e PreparedStatement

leodamasceno

Deu certo! Muito obrigado!
Agora vou tentar fazer a consulta!

Criado 3 de março de 2009
Ultima resposta 3 de mar. de 2009
Respostas 2
Participantes 2