小编DVK*_*DVK的帖子

JDBC驱动程序在空ResultSet上抛出"ResultSet Closed"异常

我在SQLite的JDBC驱动程序中遇到问题.

我正在使用SELECT语句执行查询.

如果我得到一个空ResultSet(0行),那么我看到调用时抛出的"Closed ResultSet"异常getString(1).

如果没有先前的JDBC经验,我的理论(我无法通过JavaDocs确认ResultSet)就是这样

  • getString(1) 不适用于空(零行)结果集(按设计或由于错误)
  • ResultSet'open"标志设置false为零行(再次,设计或错误)

我看到了这个错误报告,但不确定它是否相关.

我的问题是:

  1. 上述理论是否正确?
  2. 这是一个错误吗?特征?(如果有的话,有人可以指向文件吗?)
  3. 它是特定于SQLIte的JDBC还是ResultSet所有JDBC驱动程序中的泛型?
  4. 这样做的正确方法是什么??

对于#4,我的解决方案是在之后使用isFirst()call executeQuery()来检查结果集中是否有任何行.这是最佳做法吗?

(我也可以简单地选择一个计数insetad,因为我不需要一个结果集,只有零非零标志,但我想知道正确的事情,如果我关心选择的结果)

谢谢!

java sqlite exception jdbc resultset

9
推荐指数
3
解决办法
2万
查看次数

为什么管道后"设置-P"不起作用?

C:\>type c:\output.txt
abcd
C:\>type c:\output.txt | set /p V1=

C:\>set
... A bunch of junk, NOT seeing "V1"
Run Code Online (Sandbox Code Playgroud)

发生了什么?根据SET我见过的所有文档,%V1%应该从上面分配了"abcd"的值,不是吗?

如果重要的话,我使用的是Windows XP Pro,SP3.

cmd pipe batch-file set

9
推荐指数
2
解决办法
5178
查看次数

在显示通知DIV时,如何"调暗"网页的其余部分?

在我的网络应用程序中,我正在显示"通知"DIV.

我想"淡化"页面的其余部分,以便通知DIV在显示时更加突出.

这样做有一个相当简单的方法吗?

这个问题只涉及视觉效果,而不是页面其余部分的功能.

这是我在网络上其他地方找到的功能的一个例子(虽然在这种情况下,对话框是弹出的JS,而不是DIV):

在此输入图像描述

html javascript css

9
推荐指数
1
解决办法
1万
查看次数

是否有关于Perl 6中类型/约束的性能惩罚的研究?

与Perl 5相比,Perl 6引入了可选类型以及约束,例如:

# Perl 5
sub mySub {
   my $probability = $_[0];
   # Do stuff with $probability
}

# Perl 6 - using optional typing and constraints
sub mySub(Real $probability where 0 < * < 1) {
   # Do stuff with $probability
}
Run Code Online (Sandbox Code Playgroud)

在使用这些功能时,是否有研究调查是否存在性能损失,以及它们在不同的Perl 6 VM上有多大?

我正在寻找设计精良的东西和跨VM.

performance perl6

9
推荐指数
1
解决办法
418
查看次数

为什么setContextClassLoader()方法放在Thread上?

为什么setContextClassLoader()放置方法Thread?

什么不同的线程有不同的类加载器?

问题是如果我扩展了一个ClassLoader,加载了一些新的类.到我的自定义类加载器.

现在,我希望它是上下文类加载器,所以我调用该方法Thread.currentThread().setContextClassLoader(loader).

这些新类是否仅在当前线程的上下文中可用?或者它是如何工作的?

谢谢

java classloader

8
推荐指数
1
解决办法
8610
查看次数

在Windows中使用dos批处理程序的原因是什么?

题

在现代Windows系统上编写dos批处理语言中的一些非平凡任务而不是下载PowerShell或ActiveState Perl会有什么好(理想的,技术性的)理由?

更具体地说,我在这个问题的持续时间内做了以下两个假设:

  • 任何技术足以编写中等复杂性批处理脚本的人都足够技术来安装任何一个脚本解释器.

  • 对于基本的批量替换任务而言,这两者都没有足够的学习曲线,所述曲线将超过批量执行任何远程非平凡任务的痛苦.

笔记

  • "你需要一个autoexec.bat的批处理程序"不是一个正当的理由.您的autoexec.bat可能只是调用非批处理脚本.

  • 如果你不同意我上面的两个假设中的任何一个,那很好,我可能错了.但我的问题是" 假设这两个假设是正确的,那么仍然坚持批量的原因是什么?" 如果它更容易暂停怀疑(如果你不同意我),请加上第三个假设,即问题仅限于那些已经拥有至少一些PowerShell或Perl经验的人.

    重新迭代 - 与进行高级批量编码相比,这并不是一个主观问题,即学习PSh或ASPerl是多么容易.这是一个单独的问题,太过主观,不能在这篇文章中被打扰.

背景:

我曾经在老年时代做过一些相当复杂的批量编程,并且记得批处理是我遇到过的最糟糕的编程语言之一.

关于这个问题的想法是在看到一堆关于SO的批量问题之后,并试图从纯粹的好奇心中解决其中一个问题并在一分钟后痛苦地放弃,在心理上惊呼"为什么会有人经历这种痛苦而不是在Perl的1行中做到这一点?" :)

我自己看似合理的答案

我假设可能有一个可能与DOS兼容的系统,它有DOS解释器但没有兼容的PowerShell或Perl ......我不知道一个但不完全不可能.

powershell scripting perl dos batch-file

8
推荐指数
3
解决办法
622
查看次数

/ ^ $ /匹配哪个非空字符串?

在Perl SO 答案中,海报使用此代码来匹配空字符串:

$userword =~ /^$/; #start of string, followed immediately by end of string
Run Code Online (Sandbox Code Playgroud)

为了这布赖恩·d FOY评论:

你不能这么说,因为那将匹配一个特定的非空字符串.

问题:哪个非空字符串与此匹配?它只是一个由" \r" 组成的字符串吗?

regex perl

8
推荐指数
2
解决办法
3126
查看次数

查找Perl类的所有超类的最佳实践是什么?

是否有标准的CPAN方法来查找Perl类的所有超类(或更好的整个超类树,直到UNIVERSAL)?

或者是简单检查@{"${$class}::ISA"}每个班级,班级的父母等等的最佳做法?

oop perl superclass isa

8
推荐指数
2
解决办法
655
查看次数

Perl system()调用会死吗?

可以在Perl 5中system()拨打电话die吗?

(换句话说,为了100%防止system()打电话的程序,它是否需要被包装成一个eval块,还是完全没必要?)


我没有找到这种可能性perldoc system,但没有找到准确的"这个呼叫永远不会死".

注意:问题是关于这里的基本CORE Perl,没有autodie或任何其他具有类似效果的自定义模块.此外,假设没有ALRM设置信号,或任何其他自定义信号处理程序.

我假设Perl 5.*的所有版本都表现相同,但如果没有,则可以理解与5.8相关的答案.

perl eval system die

8
推荐指数
1
解决办法
1699
查看次数

为什么这个基于setTimeout的代码在Firefox中没有超时(在Internet Explorer/Chrome中有效)?

我有以下代码,它演示了直接从事件触发器调用长时间运行的函数与使用的区别setTimeout().

预期行为:

  • 当按下第一个按钮时,它会显示为按下,计算运行几秒钟,然后当计算完成时,按钮再次按下,第二列从"尚未计算"变为"计算完成".(我不会详细说明为什么会发生这种情况; 它在相关答案中进行了解释.)

  • 按下第二个按钮时,按钮立即按下; 第二列立即更改为"正在计算..."文本.当计算在几秒钟后完成时,第二列从"计算..."变为"完成计算".

实际发生了什么:

  • 这在Chrome中完美运行(两个按钮都按预期运行)

  • 这在Internet Explorer 8中完美运行

  • 这在Firefox(第25版)中不起作用.具体来说,第二个按钮作为第一个按钮表现为100%.

    • 在更改超时setTimeout()从0到1无影响

    • 在更改超时setTimeout()从0以500 作品

这让我有一个很大的难题.

根据为什么setTimeout()有效的原因,而缺少一个没有的原因,延迟对事物的运作方式应该没有影响,因为这里setTimeout()的主要目的是改变排队顺序,而不是拖延事情.

那么,为什么它不能在Firefox上使用延迟0或1,但按预期工作延迟500(并且适用于Internet Explorer 8/Chrome上的任何延迟)?

更新:除了下面的源代码,我还做了一个JSFiddle.但由于某些原因,JSFiddle甚至拒绝加载我的Internet Explorer 8,因此对于该测试,需要以下代码.

更新2:有人提出了dom.min_timeout_valueFirefox中配置设置问题的可能性.我已将其编辑为4到0,重新启动浏览器,并且没有修复任何内容.它仍然失败,超时为0或1,成功为500.


这是我的源代码 - 我只是将其保存到C:驱动器上的HTML文件中,并在所有三个浏览器中打开:

<html><body>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<table border=1>
    <tr><td><button id='do'>Do long calc - bad status!</button></td>
        <td><div id='status'>Not Calculating yet.</div></td></tr>
    <tr><td><button id='do_ok'>Do long calc - good status!</button></td>
        <td><div id='status_ok'>Not Calculating yet.</div></td></tr> …
Run Code Online (Sandbox Code Playgroud)

html javascript firefox cross-browser settimeout

8
推荐指数
1
解决办法
2730
查看次数