gpt4 book ai didi

java - 当我获取列名时出现耗尽结果集错误

转载 作者:行者123 更新时间:2023-12-01 16:01:17 26 4
gpt4 key购买 nike

我试图获取结果的类型和名称,当进入循环时,执行有关元数据的 somo 指令,resulset.next 从 true 更改为 false,并给出错误 java.sql.SqlExcepcion exeded结果集。有任何想法吗?我真的不知道如何解决它,因为我阅读了该问题的解决方案的帖子,并在开始循环之前验证结果集是否为空。我用 quartz 调度程序调用此方法。我在 j2ee 应用程序中使用它,示例如下

try 
{
InitialContext ctx = new InitialContext();
WrapperDataSource wrapperDataSource = (WrapperDataSource)ctx.lookup(systemLogger.getConfigurationParameters().getDataSource());
conn = wrapperDataSource.getConnection();

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
conn = DriverManager.getConnection(url,login,password);

if (conn != null)
{
stmt = conn.createStatement();
res = stmt.executeQuery(query);

if (res != null)
{
while (res.next())
{
for (int i = 0; i < columnlength; i++)
{
String columnName = metadata.getColumnName(i+1);
if (metadata.getColumnName(i+1).equalsIgnoreCase(systemLogger.getColumnStatus()))
{
columnStatusType = metadata.getColumnType(i+1);
}
else if (metadata.getColumnName(i+1).equalsIgnoreCase(systemLogger.getColumnDocumentId()))
{
columnDocumentIdType = metadata.getColumnType(i+1);
}
else if (metadata.getColumnName(i+1).equalsIgnoreCase(systemLogger.getColumnTimer()))
{
columnTimerType = metadata.getColumnType(i+1);
}
}
}
}
else
{
__log.error("No results found for the query");
throw new PtmServiceException("No se encontraron resultados para el query");
}

}
else
{
__log.error("Could not create the connection");
throw new PtmServiceException("No se pudo crear la conexion");
}

}
catch(Exception e)
{
__log.error("Error in the execution of the query");
throw new PtmServiceException("Error ejecutando la busqueda");
}
finally
{
res.close();
stmt.close();
conn.close();
}

最佳答案

变量columnlength似乎保存的值大于查询返回的列数。尝试使用较小的柱长。

关于java - 当我获取列名时出现耗尽结果集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com