2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / web / sqlite
index 07312db51b672247c533efa4cde9617523b50f97..8c866571c4eca8f2c8d2f89e87849370ba1df891 100755 (executable)
 * SQL Lite Data Provider
 
 <ul>
-       <li>Exists in namespace and assembly Mono.Data.SqliteClient
-       
-       <li>Created by Vladimir Vukicevic
-       
-       <li><a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>
+       <li>ADO.NET Data Provider for 
+       the <a href"http://www.hwaci.com/sw/sqlite/">SQL Lite</a> which 
+       is an embeddable SQL database engine</li>
+
+       <li>From the SQL Lite web page: SQLite is a C library that \r
+       implements an embeddable SQL database engine. Programs that link with \r
+       the SQLite library can have SQL database access without \r
+       running a separate RDBMS process. The distribution \r
+       comes with a standalone command-line access program (sqlite) that \r
+       can be used to administer an SQLite database and which serves \r
+       as an example of how to use the SQLite library.  SQLite is not a client library \r
+       used to connect to a big database server. SQLite is the server. The SQLite \r
+       library reads and writes directly to and from the database files on disk.</li>\r
+
+       <li>SQL Lite can be downloaded 
+       from <a href="http://www.hwaci.com/sw/sqlite/download.html">here</a>.
        binaries exist for Linux and Windows.  sqlite.dll on Windows 
-       and sqlite.so on Linux.
+       and sqlite.so on Linux.  The source code is available too.</li>
+
+       <li>Exists in namespace and assembly Mono.Data.SqliteClient</li>
+       
+       <li>Created by Vladimir Vukicevic so he could have a database of
+       thumbnail images for mPhoto.  mPhoto is GUI application 
+       for cataloging images.  mPhoto runs on Mono 
+       and uses <a href="http://www.go-mono.com/gtk-sharp.html">GTK#</a> for its GUI.</li>
+
+       <li>Bugs with Mono or the data provider should be reported 
+       in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>.  If you
+       do not have Bugzilla user account, it is free 
+       and easy to 
+       create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li>
+               
 </ul>
 
-* Current Status
+** Current Status
 
 <ul>
-       <li>Able to connect, execute commands, and retrieve data...
+       <li>Able to connect, execute commands, and retrieve data...</li>
        
-       <li>Works in mPhoto
+       <li>Works in mPhoto by providing access to a SQL Lite database to store images.</li>
 </ul>
 
-* Action Plan
+** Action Plan
 
 <ul>
        <li>Create a DataAdapter for SQL Lite named SqliteDataAdapter that can be used to 
-       Fill a DataTable in a DataSet
+       Fill a DataTable in a DataSet</li>
+       
+       <li>Get the method GetSchemaTable() in class SqliteDataReader to return a DataTable
+       that works</li>
+</ul>
+
+** Testing
+
+<ul>
+       <li>Have a working mcs and mono</li>
+       
+       <li>Make sure Mono.Data.SqliteClient.dll was built and is installed
+       in the same place as the mono class libraries.</li>
+       
+       <li>If you do not have <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>,
+       download it.  There are binaries for Windows and Linux.</li>
        
-       <li>TODO
+       <li>There is a test named SqliteTest.cs found at mcs/class/Mono.Data.SqliteTest/Test</li>
+       
+       <li>Has a connection string format of "URI=file:some/path".  For example, 
+       the connection string "URI=file:SqliteTest.db" will use the database file 
+       named SqliteTest.db, if it does not exist, the file will be created.</li>
+       
+       <li>C# Example:
+<pre>
+ using System;
+ using System.Data;
+ using Mono.Data.SqliteClient;
+ public class Test 
+ {
+    public static void Main(string[] args)
+    {
+       string connectionString = "URI=file:SqliteTest.db";
+       IDbConnection dbcon;
+       dbcon = new SqliteConnection(connectionString);
+       dbcon.Open();
+       IDbCommand dbcmd = dbcon.CreateCommand();
+       // requires a table to be created named employee
+       // with columns firstname and lastname
+       // such as,
+       //        CREATE TABLE employee (
+       //           firstname varchar(32),
+       //           lastname varchar(32));
+       string sql = 
+          "SELECT firstname, lastname " + 
+          "FROM employee";
+       dbcmd.CommandText = sql;
+       IDataReader reader = dbcmd.ExecuteReader();
+       while(reader.Read()) {
+            string FirstName = (string) reader[0];
+            string LastName = (string) reader[1];
+            Console.WriteLine("Name: " + 
+                FirstName + " " + LastName);
+       }
+       // clean up
+       reader.Close();
+       reader = null;
+       dbcmd.Dispose();
+       dbcmd = null;
+       dbcon.Close();
+       dbcon = null;
+    }
+ }
+</pre>
+       </li>
+       <li>Building C# Example:
+       <ul>
+               <li>Save the example to a file, such as, TestExample.cs</li>
+               <li>Build on Linux:
+<pre>
+       mcs TestExample.cs -r System.Data.dll \
+           -r Mono.Data.SqliteClient.dll
+</pre>
+               </li>
+               <li>Build on Windows via Cygwin:
+<pre>
+       mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \
+            TestExample.cs \
+            -lib:C:/cygwin/home/MyHome/mono/install/lib \
+            -r System.Data.dll \
+            -r Mono.Data.SqliteClient.dll
+</pre>
+               </li>
+       </ul>
+       </li>
+       <li>Running the Example:
+<pre>
+mono TestExample.exe
+</pre>
+       </li>
+
 </ul>
+