Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JRuby和HSQLDB:随机缺少行_Sql_Ruby_Jruby_Hsqldb - Fatal编程技术网

JRuby和HSQLDB:随机缺少行

JRuby和HSQLDB:随机缺少行,sql,ruby,jruby,hsqldb,Sql,Ruby,Jruby,Hsqldb,我有以下代码: # my db connection is here: # @connection = DriverManager.getConnection("jdbc:hsqldb:file:../db/rdata", "user", "user") #the method recieves a array of hash {:rev,:time,:path,:result} def create(list) st=@co

我有以下代码:

# my db connection is here:
# @connection = DriverManager.getConnection("jdbc:hsqldb:file:../db/rdata", "user", "user")

#the method recieves a array of hash {:rev,:time,:path,:result}
def create(list)
    st=@connection.createStatement()
    sql=""
    list.each do |i|
        sql.concat("INSERT INTO RESULTS_LOGIN (REVISION, TIMESTAMP, ARCHIVEPATH, RESULTS) VALUES (#{i[:rev]},'#{i[:time]}','#{i[:path]}','#{i[:result]}');\n")
    end
    p sql.lines.to_a.size
    st.execute(sql)
    st.close
end  
问题: sql.lines.to_a.size是128,这意味着我有128行要插入。然而,在多次重新运行之后,我发现每次我都会在数据库中得到不同的行。例如,这次结果登录表有114行,下一次是99行。。。。也有成功的运行,在表中生成128行

我不明白为什么会发生这种事。没有错误,没有异常,奇怪的是,在我的代码中,create方法后面有一个方法,whcih执行select*from RESULTS\u LOGIN并打印它,如下所示:

create(list) # insert rows
read_all # print all rows  

每次read_all right创建后打印出128行和正确的数据;但是,如果在关闭并重新创建连接后分别运行read_all,或者使用HSQLDB的GUI管理工具浏览数据库,则会缺少一些行。…

对于此类测试,您需要向URL或作为执行的SQL语句添加额外设置。这是为了确保在测试结束时保留所有未写入的数据。见我对这个问题的回答:


对于此类测试,您需要向URL或作为执行的SQL语句添加额外的设置。这是为了确保在测试结束时保留所有未写入的数据。见我对这个问题的回答:


在添加“shutdown=true”和“hsqldb.write_delay=false”之后,测试成功了三次,这是以前从未发生过的。我想这就是问题所在。谢谢在添加“shutdown=true”和“hsqldb.write_delay=false”之后,测试成功了三次,这是以前从未发生过的。我想这就是问题所在。谢谢