You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@groovy.apache.org by Billy Buzzard <bi...@bnsflogistics.com> on 2017/11/14 18:51:44 UTC

Getting Extra Record and Shouldn't

Help!  Running the follow code which should insert just one record, but when I look at the database I see two record and I don't understand how I created the second record.  Here's the code:

                private static toDatabase(List recs) {

                                println "recs.size=${recs?.size()}"

                                def NameIn
                                def SizeIn
                                def LastModIn
                                def HostIn
                                def AppIn
                                def EndPtIn

                                def NameOut
                                def SizeOut
                                def LastModOut
                                def HostOut
                                def AppOut
                                def EndPtOut

                                def Action

                                def flds

                                def sql
                                def result

                                def count = 0


                                try {

                                                recs = ["XYZ,AFH3AJ8XCCGZBPW04836,8321280,2017-11-12 16:32:45.215,DPIJ3C5FV7,JE61P2M0G,ENM99E920R2SD0R,A2P2GO3NYI5U4F4G3HU1,7305184,2017-11-12 16:32:45.215,MNF9FT5E55,L6L1J9RVS,3RYUPAQJLVKGJO1,Drop"]

                                                def cmd = "{call uspRecordBreadcrumb(?,?,?,?,?,?,?,?,?,?,?,?,?)}"
                                                result = sql.withBatch(20,cmd) { ps ->

                                                                recs.each{ rec ->
                                                                                flds = rec.split(/,/)

                                                                                NameIn = "${flds[1]}".toString()
                                                                                SizeIn = "${flds[2]}".toString()
                                                                                LastModIn = "${flds[3]}".toString()
                                                                                HostIn =  "${flds[4]}".toString()
                                                                                AppIn = "${flds[5]}".toString()
                                                                                EndPtIn =  "${flds[6]}".toString()

                                                                                NameOut = "${flds[7]}".toString()
                                                                                SizeOut = "${flds[8]}".toString()
                                                                                LastModOut = "${flds[9]}".toString()
                                                                                HostOut =  "${flds[10]}".toString()
                                                                                AppOut = "${flds[11]}".toString()
                                                                                EndPtOut =  "${flds[12]}".toString()

                                                                                Action = "${flds[13]}".toString()

                                                                                LastModIn ?: SDF.format(0)
                                                                                LastModOut ?:  SDF.format(0)
                                                                                SizeIn ?: 0
                                                                                SizeOut ?: 0

                                                                                try {
                                                                                ps.addBatch(NameIn,SizeIn,LastModIn,AppIn,HostIn,EndPtIn,NameOut,SizeOut,LastModOut,AppOut,HostOut,EndPtOut,Action)
                                                                                                count++

                                                                                } catch (BatchUpdateException bue) {
                                                                                                def updateCounts = bue.updateCounts
                                                                                                updateCounts.eachWithIndex { retval,idx ->
                                                                                                                if(retval<0) {
                                                                                                                                println "$idx. ${recs[idx]}"
                                                                                                                }
                                                                                                }
                                                                                                println "updateCounts=$updateCounts"
                                                                                }
                                                                }
                                                }

                                } catch (Exception ex) {
                                                ex.printStackTrace()
                                } finally {
                                                sql.close()
                                }
                }


This is what I see in the database:

ID            Name    Size        LastModified     EntryDateTime
147590  A_FH3AJ8XCCGZBPW04836         8321280                2017-11-12 16:32:45.217               2017-11-14 12:46:08.523
147591  A2P2GO3NYI5U4F4G3HU1           7305184                2017-11-12 16:32:45.217               2017-11-14 12:46:08.523