From ebda41b04c3e0b344501a063a68ff826adb86549 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Thu, 24 Apr 2008 07:32:08 +0100 Subject: move to sqlite3, an issue with finalising transactions (commit, close...) --- lib/sisu/v0/db_import.rb | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'lib/sisu/v0/db_import.rb') diff --git a/lib/sisu/v0/db_import.rb b/lib/sisu/v0/db_import.rb index fde6b307..646ea176 100644 --- a/lib/sisu/v0/db_import.rb +++ b/lib/sisu/v0/db_import.rb @@ -63,6 +63,7 @@ module SiSU_DB_import require "#{SiSU_lib}/db_columns" require "#{SiSU_lib}/db_load_tuple" require "#{SiSU_lib}/shared_html_lite" + #require 'sqlite3' class Import < SiSU_DB_columns::Column_size include SiSU_Param include SiSU_Screen @@ -86,11 +87,19 @@ module SiSU_DB_import @col[:ocn]='' @counter={} sql='SELECT MAX(lid) FROM documents' - @col[:lid]=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } - @col[:lid] ||=0 + begin + @col[:lid] ||=0 + @col[:lid]=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + rescue + end + @col[:lid] =0 if @col[:lid].nil? or @col[:lid].to_s.empty? sql='SELECT MAX(nid) FROM endnotes' - @id_n=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } - @id_n ||=0 + begin + @id_n ||=0 + @id_n=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + rescue + end + @id_n =0 if @col[:lid].nil? or @col[:lid].to_s.empty? @col[:lv1]=@col[:lv2]=@col[:lv3]=@col[:lv4]=@col[:lv5]=@col[:lv6]=0 @db=SiSU_Env::Info_db.new @@dl ||=SiSU_Env::Info_env.new.digest.length @@ -107,7 +116,7 @@ module SiSU_DB_import import_db_metadata(@dal_array) import_documents(@dal_array) import_db_urls(@dal_array,@fnm) #import OID on/off - @conn.commit #sqlite watch + #@conn.commit #sqlite watch else file_exist=@conn.select_one(%{ SELECT metadata.tid FROM metadata WHERE metadata.filename ~ '#{@opt.fns}'; }) unless file_exist @@ -152,9 +161,13 @@ module SiSU_DB_import special_character_escape(@tp[:title]) @tp[:title_f],@tp[:title_i]='title, ',"'#{@tp[:title]}', " sql='SELECT MAX(tid) FROM metadata' - id_t=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } - @@id_t=id_t if id_t - @@id_t ||=0 + begin + @@id_t ||=0 + id_t=@conn.execute( sql ) { |x| x.fetch_all.to_s.to_i } + @@id_t=id_t if id_t + rescue + end + @@id_t =0 if @col[:lid].nil? or @col[:lid].to_s.empty? @@id_t+=1 #bug related, needs to be performed once at start of file, but consider moving, as, placed here it means program will fail if document header lacks 0~title puts %{\n#{@cX.grey}Processing file number#{@cX.off}: #{@cX.green}#{@@id_t}#{@@cX.off}} unless @opt.cmd =~/q/ end -- cgit v1.2.3