无法从安卓设备连接到Firebird服务器

4

我正在使用Jaybird连接Firebird sql,我的应用程序以前可以正常连接。但是今天我无法连接。

我唯一做的更改是在Android Studio中执行检查器的自动修正。我不知道是什么原因导致了这个错误。

05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544472. No message for code 335544472 found.
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:123)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:126)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at java.sql.DriverManager.getConnection(DriverManager.java:179)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at br.cardapionewpointer.TestaConn.doInBackground(TestaConn.java:42)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at br.cardapionewpointer.TestaConn.doInBackground(TestaConn.java:20)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ Caused by: org.firebirdsql.gds.GDSException: No message for code 335544472 found.
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2092)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2042)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.internalAttachDatabase(AbstractJavaGDSImpl.java:457)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscAttachDatabase(AbstractJavaGDSImpl.java:411)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jca.FBManagedConnection.<init>(FBManagedConnection.java:105)
05-06 10:55:58.067  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jca.FBManagedConnectionFactory.createManagedConnection(FBManagedConnectionFactory.java:490)
05-06 10:55:58.077  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jca.FBStandAloneConnectionManager.allocateConnection(FBStandAloneConnectionManager.java:69)
05-06 10:55:58.077  16653-16755/br.cardapionewpointer W/System.err﹕ at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:120)
05-06 10:55:58.077  16653-16755/br.cardapionewpointer W/System.err﹕ ... 10 more

我的课程:

public class TestaConn extends AsyncTask<Integer,Object,Integer> {
    private final Activity activity;
    private int opt;
    public TestaConn(Activity activity) {
        this.activity = activity;
    }

    @Override
    protected Integer doInBackground(Integer... bt) {
        opt = bt[0];
        try{
            Class.forName("org.firebirdsql.jdbc.FBDriver");
        }catch(Exception e){
            System.err.println(e.getMessage());
        }
        try{
            Properties props = new Properties();
            props.setProperty("user", "xx");
            props.setProperty("password", "xx");
            props.setProperty("encoding", "WIN1252");
            DBLiteConnection bdl = new DBLiteConnection(activity);
            String ip = bdl.searchip();
            Connection conn = DriverManager.getConnection("jdbc:firebirdsql://" + ip + "", props);
            String sSql = "SELECT CD_CHAVE FROM TAB_PARAM";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sSql);
            if(rs.next())
            {
                rs.close();
                return 1;
            }
            rs.close();
        }
        catch(SQLException e1){
            e1.printStackTrace();
            return 0;
        }
        return 0;
    }

    @Override
    public void onPostExecute(Integer i) {
    }
}

1
错误335544472 = 您的用户名和密码未定义。请向您的数据库管理员请求设置Firebird登录。 (这也可能表示您没有正确安装驱动程序,因为驱动程序中包含了错误代码到错误消息的映射) - Mark Rotteveel
1个回答

2
如我昨天的评论所暗示的,这个错误说明您的用户名和/或密码是不正确的(错误代码335544472 = 您的用户名和密码未定义。请询问您的数据库管理员设置火鸟登录。)。我无法理解这可能是由格式/布局更改引起的。
你的用户名或密码已经被更改(在你的代码或服务器上),或者你正在连接到一个不同于你期望的Firebird服务器。
如果您尝试连接到一个没有设置对旧认证支持的Firebird 3(beta/RC)服务器,也会发生此错误。另请参见Jaybird and Firebird 3.0 Beta 2.
您还可以检查安装Jaybird for android,因为它似乎缺少错误消息属性文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接