Driver JDBC JayBird Não executa stored procedure

Olá pessoal td bom com vcs ?
Estou com um problema estranho em uma aplicação que utiliza 2 bases de dados iguais porem uma no SQL SERVER EXPRESS 2005 e outra no FIREBIRD 2.0, todas as inserções na base de dados são feitas atravez de stored procedures, abaixo segue a minha classe de conexão com o banco que detecta a qual banco de dados deve se conectar atravez da boolean sqlSelected


import java.sql.*;

/**
 *
 * @author Gabriel
 */
public class ConexaoDB {
    
  
 public static boolean sqlSelected;     
    /** Creates a new instance of ConexaoDB */
    
    
    private ConexaoDB() {
        
       }

    
    public static Connection getConnection(){
        
        if(isSqlSelected())
            return getSQLServerConnection();
        else
            return getFirebirdConnection();
    }
    
    private static Connection getFirebirdConnection(){
        Connection conn=null;
               try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
        } catch (java.lang.ClassNotFoundException e) {
            e.printStackTrace();
        }
        
        try{
        conn =  DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:\\DBVENDA.fdb","SYSDBA","123456");
                       
               
        }catch(SQLException sq){
            sq.printStackTrace();
        }
               
         return conn;
        
    }
    
    private static Connection getSQLServerConnection() {
        Connection conn=null;
               try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
        } catch (java.lang.ClassNotFoundException e) {
            e.printStackTrace();
        }
        
        try{
        conn =  DriverManager.getConnection("jdbc:jtds:sqlserver://DARKSTAR/DBVENDA:1433;","sa","123456");
                       
               
        }catch(SQLException sq){
            sq.printStackTrace();
        }
               
         return conn;
    }

    public static boolean isSqlSelected() {
        return sqlSelected;
    }

    public static void setSqlSelected(boolean sql) {
        sqlSelected=sql;
    }
      
    
}

abaixo segue o código que é executado em um evento de inserção na base de dados
Um cliente por exemplo

if(!jTxtNome.getText().equals("")){
            conn = ConexaoDB.getConnection();
            
                try{
                    CallableStatement csm = conn.prepareCall("INSCLIENTE(?)");
                    csm.setString(1,jTxtNome.getText());
                    csm.execute();
                    csm.close();
                    conn.close();
                    conn = null;
                    preenchejt();
                    JOptionPane.showMessageDialog(null,"Cadastro Efetuado com êxito","Mensagem",JOptionPane.INFORMATION_MESSAGE);
                } catch (SQLException sql){
                    sql.printStackTrace();
                }

Quando eu faço o cadastro de um cliente utilizando o SQL SERVER o programa funciona normal, agora se tento o mesmo com o firebird da o seguinte erro e o cursor do netbeans aponta para a linha numero 6 do código acima

org.firebirdsql.jdbc.FBSQLException: You cannot set value of an non-existing parameter.
at org.firebirdsql.jdbc.FBProcedureCall$NullParam.setValue(FBProcedureCall.java:424)
at org.firebirdsql.jdbc.AbstractCallableStatement.setString(AbstractCallableStatement.java:1130)

estou utilizando o driver Jaybird-2.1.1JDK_1.5 com java 1.6 pois ja vi estes funcionando juntos

o stored procedure é o seguinte:
CREATE PROCEDURE INSCLIENTE(nome VARCHAR(50))
AS
BEGIN
INSERT INTO CLIENTE(CODIGO,NOME) VALUES (GEN_ID(COD_CLIENTE,1),:nome);
END

Gente vocês conseguem faze idéia do que está acontecendo, sendo que as bases são identicas e só foi mudado a sintaxe do código sql que é caracteristico de cada banco de dados ?