sqlite.lua revision 1.3
11.3Skamil-- $NetBSD: sqlite.lua,v 1.3 2015/12/08 23:04:40 kamil Exp $
21.1Smbalmer
31.2Slnetolocal sqlite = require 'sqlite'
41.1Smbalmer
51.1Smbalmerprint(sqlite._VERSION .. ' - ' .. sqlite._DESCRIPTION)
61.1Smbalmerprint(sqlite._COPYRIGHT)
71.1Smbalmerprint()
81.1Smbalmer
91.1Smbalmerprint('initialize sqlite')
101.1Smbalmersqlite.initialize()
111.1Smbalmer
121.1Smbalmerprint('this is sqlite ' .. sqlite.libversion() .. ' (' ..
131.1Smbalmer    sqlite.libversion_number() .. ')')
141.1Smbalmerprint('sourceid ' .. sqlite.sourceid())
151.1Smbalmer
161.3Skamildb, state = sqlite.open('/tmp/db.sqlite', sqlite.OPEN_CREATE)
171.1Smbalmer
181.1Smbalmerif state ~= sqlite.OK then
191.1Smbalmer	print('db open failed')
201.1Smbalmerelse
211.1Smbalmer	err = db:exec('create table test (name varchar(32))')
221.1Smbalmer
231.1Smbalmer	if err ~= sqlite.OK then
241.1Smbalmer		print('table creation failed')
251.1Smbalmer		print('error code ' .. db:errcode() .. ' msg ' .. db:errmsg())
261.1Smbalmer	end
271.1Smbalmer
281.1Smbalmer	db:exec("insert into test values('Balmer')")
291.1Smbalmer	print('last command changed ' .. db:changes() .. ' rows')
301.1Smbalmer
311.1Smbalmer	stmt = db:prepare("insert into test values(:name)")
321.1Smbalmer
331.1Smbalmer	print('statement has ' .. stmt:bind_parameter_count() .. ' parameters')
341.1Smbalmer	print('param 1 name: ' .. stmt:bind_parameter_name(1))
351.3Skamil	print('param name is at index ' .. stmt:bind_parameter_index(':name'))
361.1Smbalmer
371.1Smbalmer	stmt:bind(1, 'Hardmeier')
381.1Smbalmer	stmt:step()
391.1Smbalmer	stmt:reset()
401.1Smbalmer	stmt:bind(1, 'Keller')
411.1Smbalmer	stmt:step()
421.1Smbalmer	stmt:finalize()
431.1Smbalmer
441.1Smbalmer	s2 = db:prepare('select name from test')
451.1Smbalmer
461.1Smbalmer	while s2:step() == sqlite.ROW do
471.1Smbalmer		print('name = ' .. s2:column(1))
481.1Smbalmer	end
491.1Smbalmer	s2:finalize()
501.1Smbalmer
511.3Skamil	stmt = db:prepare('drop table test')
521.1Smbalmer	stmt:step()
531.1Smbalmer	stmt:finalize()
541.1Smbalmer	db:close()
551.1Smbalmerend
561.1Smbalmer
571.1Smbalmerprint('shutdown sqlite')
581.1Smbalmersqlite.shutdown()
59