<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: sqlite code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 01:38:57 GMT</pubDate>
    <description>DZone Snippets: sqlite code</description>
    <item>
      <title>Rails MySQL/SQLite convenience methods</title>
      <link>http://snippets.dzone.com/posts/show/5148</link>
      <description>Usage:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;  Person.find :all, :conditions =&gt; ["#{sql_year 'birthday'} &gt;= ?", year]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SQLITE = true # or false&lt;br /&gt;&lt;br /&gt;def sql_concat(*args)&lt;br /&gt;  SQLITE ? args.join(' || ') : "CONCAT(#{args.join(', ')})"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def sql_lcase(expr)&lt;br /&gt;  SQLITE ? "LOWER(#{expr})" : "LCASE(#{expr})"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def sql_year(expr)&lt;br /&gt;  SQLITE ? "CAST(STRFTIME('%y', #{expr}) as 'INTEGER')" : "YEAR(#{expr})"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def sql_month(expr)&lt;br /&gt;  SQLITE ? "CAST(STRFTIME('%m', #{expr}) as 'INTEGER')" : "MONTH(#{expr})"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def sql_day(expr)&lt;br /&gt;  SQLITE ? "CAST(STRFTIME('%d', #{expr}) as 'INTEGER')" : "DAY(#{expr})"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def sql_now&lt;br /&gt;  SQLITE ? "CURRENT_TIMESTAMP" : "NOW()"&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 18 Feb 2008 02:57:36 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5148</guid>
      <author>timmorgan (Tim Morgan)</author>
    </item>
    <item>
      <title>Crack open Firefox's new Places sqlite database with ActiveRecord</title>
      <link>http://snippets.dzone.com/posts/show/4901</link>
      <description>&lt;code&gt;&lt;br /&gt;require "rubygems"&lt;br /&gt;require "active_record"&lt;br /&gt;require "active_support"&lt;br /&gt;&lt;br /&gt;ActiveRecord::Base.establish_connection(&lt;br /&gt;	:adapter =&gt; "sqlite3",&lt;br /&gt;	:database =&gt; "places.sqlite"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;class MozHistoryvisit &lt; ActiveRecord::Base&lt;br /&gt;	belongs_to :place, :class_name =&gt; "MozPlaces", :foreign_key =&gt; "place_id"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class MozPlaces &lt; ActiveRecord::Base&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;p Time.now.yesterday&lt;br /&gt;from = Time.now.yesterday.to_i * 1000000&lt;br /&gt;&lt;br /&gt;MozHistoryvisit.find(:all, :conditions =&gt; ["visit_date &gt; ?", from]).each do |h|&lt;br /&gt;	place = h.place&lt;br /&gt;	puts place.title&lt;br /&gt;	puts place.url&lt;br /&gt;	puts place.visit_count&lt;br /&gt;	puts&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 17 Dec 2007 23:09:35 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4901</guid>
      <author>sikelianos (Zeke Sikelianos)</author>
    </item>
    <item>
      <title>Create an SQLite Database from an Excel Workbook with Ruby</title>
      <link>http://snippets.dzone.com/posts/show/4215</link>
      <description>From the &lt;a href="http://rubyonwindows.blogspot.com/"&gt;Ruby on Windows&lt;/a&gt; blog.&lt;br /&gt;&lt;br /&gt;Here's a brief, unpolished snippet of code that reads data from an open Excel workbook and creates an SQLite database with a table for each worksheet in the Excel workbook:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'win32ole'&lt;br /&gt;require 'sqlite3'&lt;br /&gt;&lt;br /&gt;#   Connect to a running instance of Excel&lt;br /&gt;xl = WIN32OLE.connect('Excel.Application')&lt;br /&gt;#   Get the active workbook&lt;br /&gt;wb = xl.ActiveWorkbook&lt;br /&gt;#   Create the SQLite3 database&lt;br /&gt;db = SQLite3::Database.new('excel.db')&lt;br /&gt;#   Create a database table for each worksheet &lt;br /&gt;#   in the workbook&lt;br /&gt;wb.Worksheets.each do |ws|&lt;br /&gt;    #   Grab all values from worksheet into a &lt;br /&gt;    #   2-dimensional array&lt;br /&gt;    data = ws.UsedRange.Value&lt;br /&gt;    #   Grab first row of data to use as field names&lt;br /&gt;    field_names = data.shift&lt;br /&gt;    #   Create database table using worksheet name and &lt;br /&gt;    #   field names&lt;br /&gt;    db.execute("CREATE TABLE [#{ws.Name}] \&lt;br /&gt;        ( #{field_names.join(',')} );")&lt;br /&gt;    #   For each row of data...&lt;br /&gt;    data.each do |row|&lt;br /&gt;        #   ...single-quote all field values...&lt;br /&gt;        row.collect! { |f| f = "'" + f.to_s + "'" }&lt;br /&gt;        #   ...and insert a new record into the &lt;br /&gt;        #   database table&lt;br /&gt;        db.execute("INSERT INTO [#{ws.Name}] VALUES \&lt;br /&gt;            ( #{row.join(',')} );")&lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Further discussion can be found &lt;a href="http://rubyonwindows.blogspot.com/2007/03/ruby-excel-and-sqlite-instead-of-ms.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;</description>
      <pubDate>Wed, 27 Jun 2007 14:16:07 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4215</guid>
      <author>dmullet (David Mullet)</author>
    </item>
    <item>
      <title>Add a concat() aggregate function to SQLite</title>
      <link>http://snippets.dzone.com/posts/show/3717</link>
      <description>I often need string concatenation to behave just like an aggregate function.&lt;br /&gt;Once again I find a need to do that in SQLite, and to do that without recompiling&lt;br /&gt;SQLite for every platform we distribute for... &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include "sqlite3ext.h"&lt;br /&gt;SQLITE_EXTENSION_INIT1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;typedef struct SCtx SCtx;&lt;br /&gt;struct SCtx {&lt;br /&gt;  int rowCnt;&lt;br /&gt;  int charCnt;&lt;br /&gt;  char *result;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;static void concat_step(sqlite3_context* ctx, int argc, sqlite3_value**argv) {&lt;br /&gt;&lt;br /&gt;  SCtx *p = (SCtx *) sqlite3_aggregate_context(ctx, sizeof(*p));&lt;br /&gt;&lt;br /&gt;  char *sep = sqlite3_value_text(argv[1]);&lt;br /&gt;&lt;br /&gt;  char *txt = sqlite3_value_text(argv[0]);&lt;br /&gt;&lt;br /&gt;  if (p-&gt;rowCnt) {&lt;br /&gt;    char *txt2 = malloc(strlen(txt) + strlen(sep) + 1);&lt;br /&gt;    strcpy(txt2,sep);&lt;br /&gt;    strcat(txt2,txt);&lt;br /&gt;    txt = txt2;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  //  printf("%d. Txt: [%s] len %d\n", p-&gt;rowCnt, txt, strlen(txt));&lt;br /&gt;&lt;br /&gt;  int len = strlen(txt);&lt;br /&gt;&lt;br /&gt;  if (!p-&gt;result) {&lt;br /&gt;    p-&gt;result = malloc(len + 1);&lt;br /&gt;    strcpy(p-&gt;result, txt);&lt;br /&gt;  } else {&lt;br /&gt;    p-&gt;result = realloc(p-&gt;result, strlen(p-&gt;result) + len + 1);&lt;br /&gt;    strcat(p-&gt;result,txt);&lt;br /&gt;  }&lt;br /&gt;  //  printf ("intermediate [%s]\n", p-&gt;result);&lt;br /&gt;  p-&gt;rowCnt++;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void concat_final(sqlite3_context* ctx,&lt;br /&gt;                         int argc,&lt;br /&gt;                         sqlite3_value** argv) {&lt;br /&gt;&lt;br /&gt;  SCtx *p = (SCtx *) sqlite3_aggregate_context(ctx, sizeof(*p));&lt;br /&gt;  //  printf("Finally: %s\n", p-&gt;result);&lt;br /&gt;  sqlite3_result_text(ctx,  p-&gt;result, strlen(p-&gt;result), NULL);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int sqlite3_extension_init(&lt;br /&gt;  sqlite3 *db,&lt;br /&gt;  char **pzErrMsg,&lt;br /&gt;  const sqlite3_api_routines *pApi&lt;br /&gt;){&lt;br /&gt;  SQLITE_EXTENSION_INIT2(pApi)&lt;br /&gt;  sqlite3_create_function(db, "concat", 2, SQLITE_ANY, 0, NULL, concat_step, concat_final);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I compiled this with the following (here, ./src is the SQLite code - I used&lt;br /&gt;http://www.sqlite.org/sqlite-source-3_3_13.zip). &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;gcc -fpic -c agg.c -I./src&lt;br /&gt;gcc -shared -Wl,-soname,libagg.so -o libagg.so agg.o&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And here's how it works:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sqlite&gt; CREATE TABLE test (animals VARCHAR, interjection VARCHAR);&lt;br /&gt;&lt;br /&gt;sqlite&gt; insert into test (animals, interjection) values ('lions', 'oh my');&lt;br /&gt;&lt;br /&gt;sqlite&gt; insert into test (animals, interjection) values ('tigers', 'oh my'); &lt;br /&gt;&lt;br /&gt;sqlite&gt; insert into test (animals, interjection) values ('bears', 'oh my');&lt;br /&gt;&lt;br /&gt;sqlite&gt; select load_extension('./libagg.so');&lt;br /&gt;&lt;br /&gt;sqlite&gt; select concat(animals, ' and '), interjection from test group by interjection;&lt;br /&gt;&lt;br /&gt;sqlite&gt; lions and tigers and bears|oh my&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See also:&lt;br /&gt;1. http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions&lt;br /&gt;2. http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html&lt;br /&gt;3. http://www.sqlite.org/capi3ref.html</description>
      <pubDate>Fri, 23 Mar 2007 03:27:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3717</guid>
      <author>debedb (http://www.hrum.org)</author>
    </item>
    <item>
      <title>Optimize Aperture database</title>
      <link>http://snippets.dzone.com/posts/show/3630</link>
      <description>&lt;code&gt;&lt;br /&gt;sqlite3 Pictures/Aperture\ Library.aplibrary/Aperture.aplib/Library.apdb vacuum&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 05 Mar 2007 14:43:20 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3630</guid>
      <author>willcodeforfoo ()</author>
    </item>
    <item>
      <title>Simple Ruby ActiveRecord example</title>
      <link>http://snippets.dzone.com/posts/show/3097</link>
      <description>Using Ruby ActiveRecord with an in-memory SQLite database. A nice simple example of this wonderful library.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'active_record'&lt;br /&gt;&lt;br /&gt;ActiveRecord::Base.logger = Logger.new(STDERR)&lt;br /&gt;ActiveRecord::Base.colorize_logging = false&lt;br /&gt;&lt;br /&gt;ActiveRecord::Base.establish_connection(&lt;br /&gt;    :adapter =&gt; "sqlite3",&lt;br /&gt;    :dbfile  =&gt; ":memory:"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;ActiveRecord::Schema.define do&lt;br /&gt;    create_table :albums do |table|&lt;br /&gt;        table.column :title, :string&lt;br /&gt;        table.column :performer, :string&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    create_table :tracks do |table|&lt;br /&gt;        table.column :album_id, :integer&lt;br /&gt;        table.column :track_number, :integer&lt;br /&gt;        table.column :title, :string&lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Album &lt; ActiveRecord::Base&lt;br /&gt;    has_many :tracks&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Track &lt; ActiveRecord::Base&lt;br /&gt;    belongs_to :album&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;album = Album.create(:title =&gt; 'Black and Blue',&lt;br /&gt;    :performer =&gt; 'The Rolling Stones')&lt;br /&gt;album.tracks.create(:track_number =&gt; 1, :title =&gt; 'Hot Stuff')&lt;br /&gt;album.tracks.create(:track_number =&gt; 2, :title =&gt; 'Hand Of Fate')&lt;br /&gt;album.tracks.create(:track_number =&gt; 3, :title =&gt; 'Cherry Oh Baby ')&lt;br /&gt;album.tracks.create(:track_number =&gt; 4, :title =&gt; 'Memory Motel ')&lt;br /&gt;album.tracks.create(:track_number =&gt; 5, :title =&gt; 'Hey Negrita')&lt;br /&gt;album.tracks.create(:track_number =&gt; 6, :title =&gt; 'Fool To Cry')&lt;br /&gt;album.tracks.create(:track_number =&gt; 7, :title =&gt; 'Crazy Mama')&lt;br /&gt;album.tracks.create(:track_number =&gt; 8,&lt;br /&gt;    :title =&gt; 'Melody (Inspiration By Billy Preston)')&lt;br /&gt;&lt;br /&gt;album = Album.create(:title =&gt; 'Sticky Fingers',&lt;br /&gt;    :performer =&gt; 'The Rolling Stones')&lt;br /&gt;album.tracks.create(:track_number =&gt; 1, :title =&gt; 'Brown Sugar')&lt;br /&gt;album.tracks.create(:track_number =&gt; 2, :title =&gt; 'Sway')&lt;br /&gt;album.tracks.create(:track_number =&gt; 3, :title =&gt; 'Wild Horses')&lt;br /&gt;album.tracks.create(:track_number =&gt; 4,&lt;br /&gt;    :title =&gt; 'Can\'t You Hear Me Knocking')&lt;br /&gt;album.tracks.create(:track_number =&gt; 5, :title =&gt; 'You Gotta Move')&lt;br /&gt;album.tracks.create(:track_number =&gt; 6, :title =&gt; 'Bitch')&lt;br /&gt;album.tracks.create(:track_number =&gt; 7, :title =&gt; 'I Got The Blues')&lt;br /&gt;album.tracks.create(:track_number =&gt; 8, :title =&gt; 'Sister Morphine')&lt;br /&gt;album.tracks.create(:track_number =&gt; 9, :title =&gt; 'Dead Flowers')&lt;br /&gt;album.tracks.create(:track_number =&gt; 10, :title =&gt; 'Moonlight Mile')&lt;br /&gt;&lt;br /&gt;puts Album.find(1).tracks.length&lt;br /&gt;puts Album.find(2).tracks.length&lt;br /&gt;&lt;br /&gt;puts Album.find_by_title('Sticky Fingers').title&lt;br /&gt;puts Track.find_by_title('Fool To Cry').album_id&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 06 Dec 2006 15:57:18 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3097</guid>
      <author>mikewilsonuk (Mike Wilson)</author>
    </item>
    <item>
      <title>Making SQLITE/SQLITE3 executable scripts.</title>
      <link>http://snippets.dzone.com/posts/show/3080</link>
      <description>Use "here document" statements to build complex script files with embedded SQL statements via the sqlite/sqlite3 utility.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#! /usr/bin/env bash&lt;br /&gt;&lt;br /&gt;# execute some bash scripting commands here&lt;br /&gt;&lt;br /&gt;sqlite3 mydatabase &lt;&lt;SQL_ENTRY_TAG_1&lt;br /&gt;SELECT * &lt;br /&gt;  FROM mytable &lt;br /&gt;  WHERE somecondition='somevalue';&lt;br /&gt;SQL_ENTRY_TAG_1&lt;br /&gt;&lt;br /&gt;# execute other bash scripting commands here&lt;br /&gt;&lt;br /&gt;sqlite3 mydatabase &lt;&lt;SQL_ENTRY_TAG_2&lt;br /&gt;SELECT *&lt;br /&gt;  FROM myothertable&lt;br /&gt;  WHERE someothercondition='someothervalue';&lt;br /&gt;SQL_ENTRY_TAG_2&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that being in a bash script means that you can expand $-variables inside the SQL code directly.  This is, however, not advised unless you can be sure that only trusted, competent people will run your code.  Otherwise you'll be facing SQL injection attacks.</description>
      <pubDate>Mon, 04 Dec 2006 18:54:28 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3080</guid>
      <author>ttmrichter (Michael T. Richter)</author>
    </item>
    <item>
      <title>DB Class for SQLite</title>
      <link>http://snippets.dzone.com/posts/show/2529</link>
      <description>// description of your code here&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// insert code here..&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;//examples for handling the class&lt;br /&gt;&lt;br /&gt;        private void button1_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            string str = Path.GetDirectoryName(Application.ExecutablePath);&lt;br /&gt;            handledb mydb = new handledb(str + "\\Trivial.db3");&lt;br /&gt;            mydb.AddWord(textBox1.Text);&lt;br /&gt;            textBox1.Clear();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void button2_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            string str = Path.GetDirectoryName(Application.ExecutablePath);&lt;br /&gt;            dbstuff rt = new dbstuff(str + "\\Trivial.db3");&lt;br /&gt;            DataTable dt = rt.ShowAll();&lt;br /&gt;            listBox1.DisplayMember = "TWord";&lt;br /&gt;            listBox1.DataSource = dt;&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            //textBox2.Text = listBox1.SelectedItems[0].ToString();&lt;br /&gt;           //textBox2.Text = listBox1.Items[0].ToString();&lt;br /&gt;            textBox2.Text = listBox1.SelectedValue.ToString();&lt;br /&gt;           &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void button3_Click(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            string str = Path.GetDirectoryName(Application.ExecutablePath);&lt;br /&gt;            dbstuff rt = new dbstuff(str + "\\Trivial.db3");&lt;br /&gt;            rt.RemoveWord(textBox2.Text);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//------------ the actual class ----------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    class handledb&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        private SQLiteConnection sqconn;&lt;br /&gt;        private string dbpath;&lt;br /&gt;&lt;br /&gt;        private bool IsNumber(string word)&lt;br /&gt;        {&lt;br /&gt;            int i;&lt;br /&gt;            bool f = int.TryParse(word, out i);&lt;br /&gt;            if (f)&lt;br /&gt;                return f;&lt;br /&gt;            for (i = 0; i &lt; word.Length; i++)&lt;br /&gt;                if (char.IsDigit(word[i]))&lt;br /&gt;                    return true;&lt;br /&gt;            return false;&lt;br /&gt;        }&lt;br /&gt;        private bool IsTrivial(string word)&lt;br /&gt;        {&lt;br /&gt;            string strSQL = "SELECT * FROM Trivial WHERE Tword='"+word.ToUpper()+"'";&lt;br /&gt;            SQLiteCommand sqc = new SQLiteCommand(strSQL, sqconn);&lt;br /&gt;            SQLiteDataReader sqr = sqc.ExecuteReader();&lt;br /&gt;            bool result = sqr.Read();&lt;br /&gt;            sqr.Close();&lt;br /&gt;            return result;&lt;br /&gt;        }&lt;br /&gt;        private void OpenConnection(string dbname)&lt;br /&gt;        {&lt;br /&gt;		&lt;br /&gt;            string strconn = "Data Source="+dbpath+";Version=3;";&lt;br /&gt;            sqconn = new SQLiteConnection(strconn);&lt;br /&gt;            sqconn.Open();            &lt;br /&gt;        }&lt;br /&gt;   &lt;br /&gt;  &lt;br /&gt;        public handledb(string dbpath)&lt;br /&gt;        {&lt;br /&gt;                      &lt;br /&gt;            FileInfo fi = new FileInfo(dbpath);&lt;br /&gt;            if (!fi.Exists)&lt;br /&gt;                CreatDataBase();&lt;br /&gt;            else&lt;br /&gt;                OpenConnection();&lt;br /&gt;        }&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;        public void CreatDataBase()&lt;br /&gt;        {&lt;br /&gt;            FileStream fs = File.Create(dbpath);&lt;br /&gt;            fs.Close();&lt;br /&gt;            OpenConnection();&lt;br /&gt;            string strSQL = "Create Table tblitem (" +&lt;br /&gt;                    "TWord  nvarchar(20) PRIMARY KEY  NOT NULL" +                    &lt;br /&gt;                    ")";&lt;br /&gt;            SQLiteCommand sqc = new SQLiteCommand(strSQL, sqconn);&lt;br /&gt;            sqc.ExecuteNonQuery();&lt;br /&gt;        }&lt;br /&gt;        public void AddWord(string word)&lt;br /&gt;        {&lt;br /&gt;            if (IsTrivial(word))&lt;br /&gt;                return;&lt;br /&gt;            string strSQL = "INSERT INTO Trivial (TWord) VALUES('"+word.ToUpper()+"')";&lt;br /&gt;            SQLiteCommand sqc = new SQLiteCommand(strSQL, sqconn);&lt;br /&gt;            sqc.ExecuteNonQuery();            &lt;br /&gt;        }&lt;br /&gt;        public void RemoveWord(string word)&lt;br /&gt;        {            &lt;br /&gt;            string strSQL = "DELETE FROM Trivial WHERE Tword='" + word.ToUpper() + "'";&lt;br /&gt;            SQLiteCommand sqc = new SQLiteCommand(strSQL, sqconn);&lt;br /&gt;            sqc.ExecuteNonQuery();            &lt;br /&gt;        }&lt;br /&gt;        public DataTable ShowAll()&lt;br /&gt;        {&lt;br /&gt;            string strSQL = "SELECT * FROM Trivial";&lt;br /&gt;            SQLiteDataAdapter sqd = new SQLiteDataAdapter(strSQL, sqconn);&lt;br /&gt;            DataTable dt = new DataTable();&lt;br /&gt;            sqd.Fill(dt);&lt;br /&gt;            return dt;&lt;br /&gt;        }&lt;br /&gt;        public string DBName&lt;br /&gt;        {&lt;br /&gt;            get { return dbpath; }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;        //end class&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;//--------------</description>
      <pubDate>Tue, 05 Sep 2006 00:19:45 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2529</guid>
      <author>jdmays ()</author>
    </item>
    <item>
      <title>Check SQLite version used by DBD::SQLite</title>
      <link>http://snippets.dzone.com/posts/show/2240</link>
      <description>&lt;code&gt;&lt;br /&gt;use DBI;&lt;br /&gt;$db = DBI-&gt;connect("dbi:SQLite:dbname=x", "", "");&lt;br /&gt;print $db-&gt;{sqlite_version}; &lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 02 Jul 2006 06:34:05 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2240</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
    <item>
      <title>Dump a SQLite database</title>
      <link>http://snippets.dzone.com/posts/show/2128</link>
      <description>&lt;code&gt;&lt;br /&gt;sqlite x.db .dump &gt; output.sql&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 01 Jun 2006 17:19:40 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2128</guid>
      <author>timmorgan (Tim Morgan)</author>
    </item>
  </channel>
</rss>
