require 'set' require 'csv' require 'java' #DEFINITION FOR INSERTING COUNTS TO SQL def insert_items(connection, tbloname, rpt_line) sql2 = "INSERT INTO " + tbloname + " (f1,c1,c2) VALUES (?, ?, ?)" statementinsert = connection.prepareStatement(sql2) begin items_processed = 0 begin items_processed = items_processed + 1 statementinsert.setString(1, rpt_line[0]) statementinsert.setString(2, rpt_line[1]) statementinsert.setString(3, rpt_line[2]) statementinsert.execute_update if items_processed % 1000 == 0 print "." $stdout.flush end rescue Exception => e puts "#{e}" end end end #IF THERE IS AN F RECORD, BUT COUNTS DON'T MATCH, RUN A SQL SELECT TO GET THE REMAINING DOC COUNT TO BE REPORTED FOR THE F AS A NEW SQL DOC COUNT RECORD WITH THE CURRENT DATE AND TIME sqlfDocSelect = "SELECT '#{c1}' - [cx1] FROM " + table_oname + " WHERE [f1] = '#{fx1}'" statement = connection.prepareStatement(sqlfDocSelect) rowsd = statement.execute_query sqlfDocCount = rowsd puts "This is sql batch doc count #{sqlfDocCount}" #IF THERE IS AN F RECORD, BUT COUNTS DON'T MATCH, RUN A SQL SELECT TO GET THE REMAINING PAGE COUNT TO BE REPORTED FOR THE F AS A NEW SQL PAGE COUNT RECORD WITH THE CURRENT DATE AND TIME sqlBatchPageSelect = "SELECT '#{c2}' - [cx2] FROM " + table_oname + " WHERE [f1] = '#{fx1}'" statement = connection.prepareStatement(sqlFPageSelect) rowsp = statement.execute_query sqlfPageCount = rowsp puts "This is sql f page count #{sqlFPageCount}" report_line = ["#{fCheck}","#{sqlfDocCounts}","#{sqlfPageCounts}"] ###Get Errror com.microsoft.sqlserver.jdbc.SQLServerException: Error converting data type nvarchar to numeric. insert_items(connection, table_oname, report_line) puts "#{fCheck} new counts record added at #{mytime(Time.now)}" else #... end end end