1*acc324c6Smbalmer-- $NetBSD: sqlite.lua,v 1.4 2017/05/10 07:37:33 mbalmer Exp $ 2250c0b9dSmbalmer 34ab4902eSlnetolocal sqlite = require 'sqlite' 4250c0b9dSmbalmer 5250c0b9dSmbalmerprint(sqlite._VERSION .. ' - ' .. sqlite._DESCRIPTION) 6250c0b9dSmbalmerprint(sqlite._COPYRIGHT) 7250c0b9dSmbalmerprint() 8250c0b9dSmbalmer 9250c0b9dSmbalmerprint('initialize sqlite') 10250c0b9dSmbalmersqlite.initialize() 11250c0b9dSmbalmer 12250c0b9dSmbalmerprint('this is sqlite ' .. sqlite.libversion() .. ' (' .. 13250c0b9dSmbalmer sqlite.libversion_number() .. ')') 14250c0b9dSmbalmerprint('sourceid ' .. sqlite.sourceid()) 15250c0b9dSmbalmer 16*acc324c6Smbalmerdb, state = sqlite.open('/tmp/db.sqlite', sqlite.OPEN_READWRITE | 17*acc324c6Smbalmer sqlite.OPEN_CREATE) 18250c0b9dSmbalmer 19250c0b9dSmbalmerif state ~= sqlite.OK then 20250c0b9dSmbalmer print('db open failed') 21250c0b9dSmbalmerelse 22250c0b9dSmbalmer err = db:exec('create table test (name varchar(32))') 23250c0b9dSmbalmer 24250c0b9dSmbalmer if err ~= sqlite.OK then 25250c0b9dSmbalmer print('table creation failed') 26250c0b9dSmbalmer print('error code ' .. db:errcode() .. ' msg ' .. db:errmsg()) 27250c0b9dSmbalmer end 28250c0b9dSmbalmer 29250c0b9dSmbalmer db:exec("insert into test values('Balmer')") 30250c0b9dSmbalmer print('last command changed ' .. db:changes() .. ' rows') 31250c0b9dSmbalmer 32250c0b9dSmbalmer stmt = db:prepare("insert into test values(:name)") 33250c0b9dSmbalmer 34250c0b9dSmbalmer print('statement has ' .. stmt:bind_parameter_count() .. ' parameters') 35250c0b9dSmbalmer print('param 1 name: ' .. stmt:bind_parameter_name(1)) 368ad8b067Skamil print('param name is at index ' .. stmt:bind_parameter_index(':name')) 37250c0b9dSmbalmer 38250c0b9dSmbalmer stmt:bind(1, 'Hardmeier') 39250c0b9dSmbalmer stmt:step() 40250c0b9dSmbalmer stmt:reset() 41250c0b9dSmbalmer stmt:bind(1, 'Keller') 42250c0b9dSmbalmer stmt:step() 43250c0b9dSmbalmer stmt:finalize() 44250c0b9dSmbalmer 45250c0b9dSmbalmer s2 = db:prepare('select name from test') 46250c0b9dSmbalmer 47250c0b9dSmbalmer while s2:step() == sqlite.ROW do 48250c0b9dSmbalmer print('name = ' .. s2:column(1)) 49250c0b9dSmbalmer end 50250c0b9dSmbalmer s2:finalize() 51250c0b9dSmbalmer 528ad8b067Skamil stmt = db:prepare('drop table test') 53250c0b9dSmbalmer stmt:step() 54250c0b9dSmbalmer stmt:finalize() 55250c0b9dSmbalmer db:close() 56250c0b9dSmbalmerend 57250c0b9dSmbalmer 58250c0b9dSmbalmerprint('shutdown sqlite') 59250c0b9dSmbalmersqlite.shutdown() 60