1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
require "postgres"
def main
conn = PGconn.connect("localhost",5432,"","")
puts("dbname: " + conn.db + "\thost: " + conn.host + "\tuser: " + conn.user)
# Transaction
conn.exec("BEGIN")
lobj = conn.loimport("losample.rb")
lobjnum = lobj.oid
puts("loimport ok! oid=" + lobj.oid.to_s)
lobj.open
lobj.seek(0,PGlarge::SEEK_SET) # SEEK_SET or SEEK_CUR or SEEK_END
buff = lobj.read(18)
puts buff
if 'require "postgres"' == buff
puts "read ok!"
end
lobj.seek(0,PGlarge::SEEK_END)
buff = lobj.write("write test ok?\n")
puts lobj.tell
puts 'export test .file:lowrite.losample add "write test of?"...'
lobj.export("lowrite.txt")
lobj.close
conn.exec("COMMIT")
begin
lobj.read(1)
puts "boo!"
return
rescue
puts "ok! Large Object is closed"
end
conn.exec("BEGIN")
puts lobjnum.to_s
lobj = conn.loopen(lobjnum)
puts "large object reopen ok!"
lobj.seek(0,PGlarge::SEEK_SET) # SEEK_SET or SEEK_CUR or SEEK_END
buff = lobj.read(18)
puts buff
puts "reread ok!"
conn.exec("COMMIT")
lobj.unlink
puts "large object unlink"
end
main
|