【发布时间】:2011-04-01 19:57:29
【问题描述】:
我编写了一个 java 程序,它应该用算法生成的一些行填充 sqlite 数据库。
所以我访问数据库并插入我的行......
它持续了几秒钟,但是:
1.30168691E9s 100 --> '0 1 2 5 8', 0, 0, 0
3.163s 200 --> '0 1 2 7 17', 0, 0, 0
3.158s 300 --> '0 1 2 9 30', 0, 0, 0
线程“主”java.sql.SQLException 中的异常:无法打开数据库文件
在 org.sqlite.DB.execute(DB.java:275)
在 org.sqlite.DB.executeUpdate(DB.java:281)
在 org.sqlite.Stmt.executeUpdate(Stmt.java:103)
在 grid0.GridFill.fillTable(GridFill.java:26)
在 grid0.GridFill.writeCombs(GridFill.java:54)
在 grid0.Main.main(Main.java:15)
Java 结果:1
程序运行前 300 行,但随后崩溃……我不明白为什么。 我需要一些帮助...
谢谢...
public void fillTable(String hand) 抛出异常
{
字符串数据 = "'" + 手 + "', 0, 0, 0";
if(count%100 == 0)
{
System.out.println((System.currentTimeMillis()-time)/(float)1000 + "s " + count +" --> " + data);
时间 = System.currentTimeMillis();
}
stat.executeUpdate("insert into Hands (Hand, Lock, Done, SubstitutionNumber) VALUES (" + data + ")");
}
【问题讨论】:
-
Hmmmm...一些常见的罪魁祸首:这是线程化的吗?如果是这样,您是否肯定不会同时从多个线程访问数据库? (请记住,GUI 通常在与其他工作线程不同的线程中运行)您是否每次都打开数据库,如果是,您是否在尝试再次打开之前关闭它?只是我遇到的一些事情。
-
这是什么操作系统?是否有可能另一个程序同时触摸该文件?分区上的磁盘空间不足吗?
-
它是一个单线程程序,我在 Windows 7 64 上,我使用的是 zentus jdbc 驱动程序,我在 HD 上有 65GB...