[Mono-list] Sqlite (2.0 profile) crash on Windows
Xavi de Blas
xaviblas at gmail.com
Fri Aug 24 07:12:04 EDT 2007
Hello all
I attach a .cs that works on Linux but crashes always on the same
place on Windows, both with mono 1.2.4. Code
I compile the .cs on Linux and then i try on both platforms.
On Windows i put the sqlite3.dll on the running directory coming from here:
http://sqlite.org/download.html
concretely this:
http://sqlite.org/sqlitedll-3_4_0.zip
and i execute doing 'mono sqliteCrashWin.exe' from the mono command prompt.
remember to delete de SqliteTest.db before every new test.
there's also problems with the encoding on windows. I don't know if it's
related to the crash.
I tried also renaming other sqlitexxx.dll files with no success.
I use the SqliteConnection and not the IDbConnection because i don't
know how to dbcon.LastInsertRowId with the IDbconnection
Any idea? Thanks
-------- code attached ---------
/*
sqliteCrashWin.cs
*/
//Compile with:
//gmcs sqliteCrashWin.cs -r:System.Data.dll -r:Mono.Data.Sqlite.dll
using System;
using System.Data;
//using Mono.Data.SqliteClient; //1.0 profile
using Mono.Data.Sqlite; //2.0 profile
public class Test
{
public static void Main(string[] args)
{
//1.1 profile
//string connectionString = "URI=file:SqliteTest.db";
//
//2.0 profile
string connectionString = "version = 3; Data source=SqliteTest.db";
//works but characters are not seen ok on windows command prompt
Console.WriteLine("1 creating file SqliteTest.db ... \n(if exists,
DELETE IT BEFORE RUNNING THIS PROGRAM)");
/*
IDbConnection dbcon;
dbcon = (IDbConnection) new SqliteConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
*/
SqliteConnection dbcon;
dbcon = new SqliteConnection(connectionString);
dbcon.Open();
SqliteCommand dbcmd = dbcon.CreateCommand();
Console.WriteLine("2 creating 1st table works...");
string sql =
"CREATE TABLE employee (" +
"firstname varchar(32)," +
"lastname varchar(32))";
dbcmd.CommandText = sql;
dbcmd.ExecuteNonQuery();
Console.WriteLine("3 creating 2nd table works...");
sql =
"CREATE TABLE employeeText (" +
"firstname TEXT," +
"lastname TEXT)";
dbcmd.CommandText = sql;
dbcmd.ExecuteNonQuery();
Console.WriteLine("4 creating 3d table works...");
sql =
"CREATE TABLE jump ( " +
"uniqueID INTEGER PRIMARY KEY, " +
"personID INT, " +
"sessionID INT, " +
"type varchar(32), " +
"tv FLOAT, " +
"tc FLOAT, " +
"fall INT, " +
"weight varchar(32), " +
"description varchar(32) )";
dbcmd.CommandText = sql;
dbcmd.ExecuteNonQuery();
Console.WriteLine("5 creating 4th table CRASHES ON WINDOWS...");
sql =
"CREATE TABLE jumpText ( " +
"uniqueID INTEGER PRIMARY KEY, " +
"personID INT, " +
"sessionID INT, " +
"type TEXT, " +
"tv FLOAT, " +
"tc FLOAT, " +
"fall INT, " +
"weight TEXT, " +
"description TEXT )";
dbcmd.CommandText = sql;
dbcmd.ExecuteNonQuery();
Console.WriteLine("6 inserting data table 1...");
sql =
"INSERT INTO employee (firstname, lastname) " +
"VALUES ('my1stName', 'my2ndName')";
dbcmd.CommandText = sql;
dbcmd.ExecuteNonQuery();
Console.WriteLine("7 selecting data table 1...");
sql =
"SELECT firstname, lastname " +
"FROM employee";
dbcmd.CommandText = sql;
//IDataReader reader = dbcmd.ExecuteReader();
SqliteDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()) {
string FirstName = reader.GetString (0);
string LastName = reader.GetString (1);
Console.WriteLine("Name: " +
FirstName + " " + LastName);
}
Console.WriteLine("8 clean up...");
// clean up
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbcon.Close();
dbcon = null;
}
}
More information about the Mono-list
mailing list