 
sqlite3.rbは、Ruby用SQLiteライブラリです。本ライブラリの実行には、sqlite3.dll(32ビット用)を必要とします。
      sqlite3.rbとsqlite3.dllは、同じフォルダに入れてください。
      
      使用したrubyのバージョン ruby 2.7.2p137 RubyInstaller 32ビット
      使用した sqlite3.dll のバージョン 3.26.0
      sqlite3.rb(Ver.1.24)のダウンロード(sqlite3_v124.7z)
   
Sqlite3クラス Sqlite3用クラスです。
| ir | 実行結果 正常時:0 、失敗時:0以外 | 
| ardt | 結果の取得データ 二次元配列となります。 | 
| arcmn | 結果取得データのカラム名 配列となります。 | 
exec関数を使用した例
# -*- coding: utf-8 -*-
require "./sqlite3"
class Sqlite < Sqlite3
   def execSQL(sSQL)
      ir,ardt,arnm = exec(sSQL)
      if ir != 0
         sa = "sqlite SQL error¥r¥n" + errmsg + "¥r¥n[" + sSQL + "]¥r¥n"
         print sa
         close
         exit
      end
      return ir,ardt,arnm
   end
end
sqlite = Sqlite.new(__ENCODING__)
ir = sqlite.open("sqldb1.db")
if ir != 0
   print "open失敗¥r¥n"
   exit
end
sr = sqlite.libversion
print "sqlite3.dllバージョン:" + sr + "¥r¥n"
sSQL = "CREATE TABLE IF NOT EXISTS tbl5 (" +
       "id int primary key," +
       "cnote text)"
ir,ardt,arnm = sqlite.execSQL(sSQL)
sSQL = "SELECT max(id) FROM tbl5"
ir,ardt,arnm = sqlite.execSQL(sSQL)
id = 0
if ardt[0][0] != nil
   id = ardt[0][0].to_i
end
id += 1
sSQL = "INSERT INTO tbl5 VALUES (" + id.to_s + ",'123abc日本①Ⅱ')"
ir,ardt,arnm = sqlite.execSQL(sSQL)
sSQL = "SELECT * FROM tbl5 ORDER BY id DESC LIMIT 5"
ir,ardt,arnm = sqlite.execSQL(sSQL)
ardt.each{|rc|
  print rc[0] + "," + rc[1] + "¥r¥n"
}
ir = sqlite.close
print "end"
   UPDATE テーブル名 SET カラム名1=値1, カラム名2=値2, ..... WHERE 条件式
UPDATE テーブル名 SET (カラム名1, カラム名2, .......) = (値1, 値2, .......) WHERE 条件式
すべてのカラムに値をセット
   INSERT INTO テーブル名 VALUES (値1, 値2, .......)
カラムを指定して値をセット
   INSERT INTO テーブル名 (カラム名1, カラム名2, .......) VALUES (値1, 値2, .......)
プリペアステートメントを使用した例
# -*- coding: utf-8 -*-
require "./sqlite3"
sqlite = Sqlite3.new(__ENCODING__)
ir = sqlite.open("sqldb1.db")
if ir != 0
   print "open失敗¥r¥n"
   exit
end
sSQL = "SELECT max(id) FROM tbl5"
ir,ardt,arnm = sqlite.exec(sSQL)
id = 0
if ardt[0][0] != nil
   id = ardt[0][0].to_i
end
id += 1
sSQL = "INSERT INTO tbl5 VALUES (?, ?)"
ir = sqlite.prepare(sSQL)
ir = sqlite.reset
ir = sqlite.bind_int(1, id)
ir = sqlite.bind_text(2, "123abc文字 " + Time.now.to_s)
ir = sqlite.step
if ir == Sqlite3::SQLITE_DONE
   print "書き込み完了¥r¥n"
else
   print "書き込みエラー:" + ir.to_s + "¥r¥n"
end
sSQL = "SELECT * FROM tbl5 WHERE id > ?"
ir = sqlite.prepare(sSQL)
ir = sqlite.reset
ir = sqlite.bind_int(1, (id - 5))
while true do
   ir = sqlite.step
   if ir == Sqlite3::SQLITE_ROW
      id1 = sqlite.column_int(0)
      sr = sqlite.column_text(1)
      print id1.to_s + "," + sr + "¥r¥n"
   else
      break
   end
end
ir = sqlite.finalize
ir = sqlite.close
print "end"
   履歴