如何在 VoltDB 中获取查询结果
How to get result of query in VoltDB
我有一个带有 table 的 VoltDB 数据库。
我想获得我的 VoltDB 存储过程的结果。这是代码
import org.voltdb.*;
public class isola extends VoltProcedure {
public final SQLStmt getLeast = new SQLStmt(" SELECT codice FROM prova WHERE ID=1;" );
public VoltTable[] run() throws VoltAbortException {
voltQueueSQL(getLeast);
VoltTable[] queryresults = voltExecuteSQL();
String results= queryresults[0].toString();
System.out.println("String: \n " + results);
return voltExecuteSQL();
}
}
这是输出
String:
header size: 14
status code: -128 column count: 1
(CODICE:INTEGER), rows -
2
正确查询结果只有2个
为什么我会得到这个结果?我只想得到 2 个结果。
提前致谢
queryresults[0] 是一个 VoltTable 对象。 toString() 方法将整个对象转换为字符串(不包括数据本身,仅包括元数据)。您需要遍历 VoltTable 中的行(通常这是使用 advanceRow() 完成的)并使用 getLong(0) 或 getLong("CODICE").
检索代码列
此外,最后的 return voltExecuteSQL() 将 return 一个空的 VoltTable[] 因为排队的 SQL 语句已经被执行,没有别的已排队
我有一个带有 table 的 VoltDB 数据库。 我想获得我的 VoltDB 存储过程的结果。这是代码
import org.voltdb.*;
public class isola extends VoltProcedure {
public final SQLStmt getLeast = new SQLStmt(" SELECT codice FROM prova WHERE ID=1;" );
public VoltTable[] run() throws VoltAbortException {
voltQueueSQL(getLeast);
VoltTable[] queryresults = voltExecuteSQL();
String results= queryresults[0].toString();
System.out.println("String: \n " + results);
return voltExecuteSQL();
}
}
这是输出
String:
header size: 14
status code: -128 column count: 1
(CODICE:INTEGER), rows -
2
正确查询结果只有2个
为什么我会得到这个结果?我只想得到 2 个结果。
提前致谢
queryresults[0] 是一个 VoltTable 对象。 toString() 方法将整个对象转换为字符串(不包括数据本身,仅包括元数据)。您需要遍历 VoltTable 中的行(通常这是使用 advanceRow() 完成的)并使用 getLong(0) 或 getLong("CODICE").
检索代码列此外,最后的 return voltExecuteSQL() 将 return 一个空的 VoltTable[] 因为排队的 SQL 语句已经被执行,没有别的已排队