11.4Smbalmer-- $NetBSD: sqlite.lua,v 1.4 2017/05/10 07:37:33 mbalmer 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.4Smbalmerdb, state = sqlite.open('/tmp/db.sqlite', sqlite.OPEN_READWRITE |
171.4Smbalmer    sqlite.OPEN_CREATE)
181.1Smbalmer
191.1Smbalmerif state ~= sqlite.OK then
201.1Smbalmer	print('db open failed')
211.1Smbalmerelse
221.1Smbalmer	err = db:exec('create table test (name varchar(32))')
231.1Smbalmer
241.1Smbalmer	if err ~= sqlite.OK then
251.1Smbalmer		print('table creation failed')
261.1Smbalmer		print('error code ' .. db:errcode() .. ' msg ' .. db:errmsg())
271.1Smbalmer	end
281.1Smbalmer
291.1Smbalmer	db:exec("insert into test values('Balmer')")
301.1Smbalmer	print('last command changed ' .. db:changes() .. ' rows')
311.1Smbalmer
321.1Smbalmer	stmt = db:prepare("insert into test values(:name)")
331.1Smbalmer
341.1Smbalmer	print('statement has ' .. stmt:bind_parameter_count() .. ' parameters')
351.1Smbalmer	print('param 1 name: ' .. stmt:bind_parameter_name(1))
361.3Skamil	print('param name is at index ' .. stmt:bind_parameter_index(':name'))
371.1Smbalmer
381.1Smbalmer	stmt:bind(1, 'Hardmeier')
391.1Smbalmer	stmt:step()
401.1Smbalmer	stmt:reset()
411.1Smbalmer	stmt:bind(1, 'Keller')
421.1Smbalmer	stmt:step()
431.1Smbalmer	stmt:finalize()
441.1Smbalmer
451.1Smbalmer	s2 = db:prepare('select name from test')
461.1Smbalmer
471.1Smbalmer	while s2:step() == sqlite.ROW do
481.1Smbalmer		print('name = ' .. s2:column(1))
491.1Smbalmer	end
501.1Smbalmer	s2:finalize()
511.1Smbalmer
521.3Skamil	stmt = db:prepare('drop table test')
531.1Smbalmer	stmt:step()
541.1Smbalmer	stmt:finalize()
551.1Smbalmer	db:close()
561.1Smbalmerend
571.1Smbalmer
581.1Smbalmerprint('shutdown sqlite')
591.1Smbalmersqlite.shutdown()
60