Ruby ODBC SQL Server Errors

I have a ruby script that inserts data into a SQL Server Express
database. The inserts work but I keep getting errors like the following
“WARNING: STMT 0x2954f50 was not dropped before garbage collection.”

Here’s the script

require ‘odbc’

c=ODBC::connect(‘SMD’)
t1 = Time.now

aFile = File.open(“C://temp/DMERECAP.SDF”)

aFile.each_line do |line|
if $. < 11
q =c.prepare(“Insert into
DMERECAP(recptlo,datepaid,invoicenum,dolapplied,payername,hcpc,servdatepd,patnum)
values (’#{line[0…6].squeeze(” “)}’ ,’#{line[7…16].squeeze(” “)}’,
'#{line[17…28].squeeze(” “)}’, '#{line[29…40].squeeze(” “)}’,
'#{line[48…87].squeeze(” “)}’, '#{line[88…92].squeeze(” “)}’,
'#{line[145…154].squeeze(” “)}’, '#{line[138…145].squeeze(”
“).to_i}’)”)
q.execute()

 end

end

puts “Import complete.”
puts Time.now-t1

if c
c.disconnect
end

============

Any help would be appreciated.

thanks,

Luis

Hi Luis,

I asked Christian Werner about this in the past. He told me that these
are internal warnings intended to remind the lazy programmer to
close/drop his ODBC statements. If you don’t do so, their cleanup
doesn’t occur until garbage collection. Christian said these warnings
are “…not a bug but a feature.”

Try q.drop after q.execute and see if that fixes things for you…

Ben

Thanks,

That did the trick.

Luis

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs