diff options
Diffstat (limited to 'web/sqlite')
-rwxr-xr-x | web/sqlite | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/web/sqlite b/web/sqlite new file mode 100755 index 00000000000..8c866571c4e --- /dev/null +++ b/web/sqlite @@ -0,0 +1,143 @@ +* SQL Lite Data Provider + +<ul> + <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
+ implements an embeddable SQL database engine. Programs that link with
+ the SQLite library can have SQL database access without
+ running a separate RDBMS process. The distribution
+ comes with a standalone command-line access program (sqlite) that
+ can be used to administer an SQLite database and which serves
+ as an example of how to use the SQLite library. SQLite is not a client library
+ used to connect to a big database server. SQLite is the server. The SQLite
+ library reads and writes directly to and from the database files on disk.</li>
+ + <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. 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 + +<ul> + <li>Able to connect, execute commands, and retrieve data...</li> + + <li>Works in mPhoto by providing access to a SQL Lite database to store images.</li> +</ul> + +** Action Plan + +<ul> + <li>Create a DataAdapter for SQL Lite named SqliteDataAdapter that can be used to + 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>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> + |