Java SqlAnywhere问题在jtds Android中返回多行

Java SqlAnywhere问题在jtds Android中返回多行,java,android,sql,database,Java,Android,Sql,Database,使用JTDS1.3.1从SqlAnywhere数据库检索多行时遇到一些问题。 我正在使用以下查询从hs.vk\u beleg\u pos中选择menge\u pe,text,plain\u text,text\u is\u rtf,其中belegnr位于(602397),当使用“SQL Central”在交互式SQL窗口中执行时,返回预期结果。为了清晰起见,android studio中的字符被正确转义,为了清晰起见,上面是这样写的。但是,当由我的android应用程序执行时,只返回一行并产生如

使用JTDS1.3.1从SqlAnywhere数据库检索多行时遇到一些问题。 我正在使用以下查询
从hs.vk\u beleg\u pos中选择menge\u pe,text,plain\u text,text\u is\u rtf,其中belegnr位于(602397)
,当使用“SQL Central”在交互式SQL窗口中执行时,返回预期结果。为了清晰起见,android studio中的字符被正确转义,为了清晰起见,上面是这样写的。但是,当由我的android应用程序执行时,只返回一行并产生如下错误:

I/System.out:1000.0000 menge_pe,空文本,{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}} {\colortbl;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1031\fs18 Epilox H'e4rter EC 5310\par } 纯文本,4096文本是rtf E/此处的错误1::TDS协议错误:无效的数据包类型0xd6

出于测试目的,我暂时使用以下代码处理结果

  public void purchaseDbLookup(String orderID, List<String> results) {
    SqlAnywhereConnClass cc = new SqlAnywhereConnClass("un", "pass", "db", "ip");
    Connection cn = cc.getConnection();
    Statement st = null;
    ResultSet rs;
    ResultSetMetaData rsmt;
    results.clear();

    try {
      st = (Statement) cn.createStatement();
      rs = st.executeQuery("SELECT menge_pe, text, plain_text, text_is_rtf FROM \"hs\".\"vk_beleg_pos\" WHERE belegnr IN (" + orderID + ")");

      ResultSetMetaData rsmd = rs.getMetaData();
      System.out.println("querying SELECT * FROM XXX");
      int columnsNumber = rsmd.getColumnCount();
      while (rs.next()) {
        for (int i = 1; i <= columnsNumber; i++) {
          if (i > 1) System.out.print(",  ");
          String columnValue = rs.getString(i);
          System.out.print(columnValue + " " + rsmd.getColumnName(i));
        }
        System.out.println("");
      }
public void purchaseDbLookup(字符串orderID,列表结果){
SqlAnywhereConnClass cc=新的SqlAnywhereConnClass(“un”、“pass”、“db”、“ip”);
连接cn=cc.getConnection();
语句st=null;
结果集rs;
结果元数据rsmt;
结果:清晰();
试一试{
st=(语句)cn.createStatement();
rs=st.executeQuery(“选择menge_pe,text,plain_text,text_is_rtf FROM\“hs\”\“vk_beleg_pos\”,其中belegnr IN(“+orderID+”));
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println(“查询选择*自XXX”);
int columnsumber=rsmd.getColumnCount();
while(rs.next()){
对于(inti=1;i1)系统输出打印(“,”;
String columnValue=rs.getString(i);
System.out.print(columnValue+“”+rsmd.getColumnName(i));
}
System.out.println(“”);
}

我已经被这个问题困扰了一段时间,所以我希望有人能帮助我:)

提前谢谢大家,,
Matt

这看起来像是连接/驱动程序问题。请验证您使用的驱动程序是否正确-此线程应该是有用的: