Hey there Since I have not had much response to my CSharpSqlite query in June, I went ahead and committed the CSharpSqlite binary as well as my custom ADO.NET wrapper for CSharpSqlite. The source for them is OpenSimLibs/trunk/managed.
Commit Hash: acd5bbdb71682131be386b7a5ce1904622b0ee70 ViewGit: http://opensimulator.org/viewgit/?a=commit&p=opensim&h=acd5bbdb71682131be386b7a5ce1904622b0ee70 For those of you who do not know what CSharpSqlite is, I suggest you read: http://code.google.com/p/csharp-sqlite/ Summary: It's an independent implementation of the SQLite library written in C#. There are no native libraries associated with it. This has the advantage of having it work, out of the box in most configurations. (32bit/64bit/Win/Linux/Mac/more?). Benchmarks: http://code.google.com/p/csharp-sqlite/wiki/Benchmarks A couple of things that I've learned about it during the process of getting it to work. 1. The SQLite database files that CSharpSqlite makes are not byte per byte compatible. Mono.Data.Sqlite and other native SQLite tools can read databases created with CSharpSqlite but CSharpSqlite asserts on databases created with Mono.Data.Sqlite 2. When running under CSharpSqlite, OpenSimulator will crash on the first load. Subsequent attempts to load OpenSimulator and it'll be fine. The ADO.NET wrapper that I wrote for CSharpSqlite is code compatible with Mono.Data.Sqlite. That means that either can be used simply by changing the using statement at the top of each of the SQLite*.cs files The same code that works for Mono.Data.Sqlite will also work on CSharpSqlite because the inner namespaces are exactly the same. To save on code maintenance, I implemented CSharpSqlite as the compilation conditional CSharpSqlite in the OpenSim.Data.Sqlite project. #if CSharpSqlite using Community.CsharpSqlite.Sqlite; #else using Mono.Data.Sqlite; #endif CSharpSqlite is easy to define in Microsoft Visual Studio but it's slightly tougher for just plain Mono. In Visual Studio, you right click the OpenSim.Data.Sqlite project in the Solution Explorer. Click Properties from the context menu. Then go to the Build Tab. You'll see a box labeled 'Condition compilation symbols' that's empty. Simply enter CSharpSqlite into that box, save the project and compile. Apparently in Mono you use the -d:CSharpSqlite parameter when you compile OpenSim.Data.Sqlite. MonoDevelop may make this process easier but I have no basis to work from. Hopefully this helps people deal with issues relating to the use of SQLite Regards Teravus _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
