Java SqlAnywhere问题在jtds Android中返回多行
使用JTDS1.3.1从SqlAnywhere数据库检索多行时遇到一些问题。 我正在使用以下查询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应用程序执行时,只返回一行并产生如
从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这看起来像是连接/驱动程序问题。请验证您使用的驱动程序是否正确-此线程应该是有用的: