-- $NetBSD: sqlite.lua,v 1.4 2017/05/10 07:37:33 mbalmer Exp $ local sqlite = require 'sqlite' print(sqlite._VERSION .. ' - ' .. sqlite._DESCRIPTION) print(sqlite._COPYRIGHT) print() print('initialize sqlite') sqlite.initialize() print('this is sqlite ' .. sqlite.libversion() .. ' (' .. sqlite.libversion_number() .. ')') print('sourceid ' .. sqlite.sourceid()) db, state = sqlite.open('/tmp/db.sqlite', sqlite.OPEN_READWRITE | sqlite.OPEN_CREATE) if state ~= sqlite.OK then print('db open failed') else err = db:exec('create table test (name varchar(32))') if err ~= sqlite.OK then print('table creation failed') print('error code ' .. db:errcode() .. ' msg ' .. db:errmsg()) end db:exec("insert into test values('Balmer')") print('last command changed ' .. db:changes() .. ' rows') stmt = db:prepare("insert into test values(:name)") print('statement has ' .. stmt:bind_parameter_count() .. ' parameters') print('param 1 name: ' .. stmt:bind_parameter_name(1)) print('param name is at index ' .. stmt:bind_parameter_index(':name')) stmt:bind(1, 'Hardmeier') stmt:step() stmt:reset() stmt:bind(1, 'Keller') stmt:step() stmt:finalize() s2 = db:prepare('select name from test') while s2:step() == sqlite.ROW do print('name = ' .. s2:column(1)) end s2:finalize() stmt = db:prepare('drop table test') stmt:step() stmt:finalize() db:close() end print('shutdown sqlite') sqlite.shutdown()