[Mono-dev] Which SQLite?

Alex J Lennon ajlennon at dynamicdevices.co.uk
Thu Jul 17 13:12:17 UTC 2014

On 17/07/2014 13:33, Edward Ned Harvey (mono) wrote:
>> From: Alex J Lennon [mailto:ajlennon at dynamicdevices.co.uk]
>> Sent: Wednesday, July 16, 2014 5:15 AM
>> To: Edward Ned Harvey (mono); mono-devel-list at lists.ximian.com
>> fwiw - I am currently using System.Data.SQLite, deploying onto both
>> .NET/Windows and Mono/Yocto Embedded Linux
>> However I have had to rebuild System.Data.SQLite from source for Mono
>> use.
>> ref:
>> http://system.data.sqlite.org/index.html/doc/trunk/www/build.wiki#mono
> Thanks, here is where I'm at right now:
> Mono.Data.Sqlite is reliably available on mac/linux.  And I had the brilliant idea that I would install mono on windows, and then grab the Mono.Data.Sqlite.dll from the mono installation, and distribute it.  However, there's this:
> https://bugzilla.xamarin.com/show_bug.cgi?id=2148
> The latest windows release is mono 3.2.3, which unfortunately includes a bug that kills Mono.Data.Sqlite, that was fixed in 3.2.6 or 3.2.7.
> So if a new windows build is released anytime soon with a functional Mono.Data.Sqlite, it will be the obvious easiest best solution:  Just use Mono.Data.Sqlite natively on systems that have mono (max/linux) and distribute Mono.Data.Sqlite.dll for windows.
> Some guy on the internet managed to build a version of Mono.Data.Sqlite.dll that works on windows, and has it available here:
> 	http://www.deltasblog.co.uk/2013/12/28/mono-data-sqlite-for-net-4-04-5/ 
> 	http://www.deltasblog.co.uk/downloads/Mono.Data_.Sqlite.zip
> Naturally, everyone should feel a little uncomfortable with that, but it's very useful for testing purposes, and depending on who you are and what you care about, it might be good enough for distribution.
> BTW, in case you didn't know:  
> Mono.Data.Sqlite and System.Data.Sqlite are *almost* completely compatible, but not exactly.
> You need to global search and replace "SQLite" with "Sqlite"  ...  Meaning ... All the same classes, and everything in the API is all the same, except the capitalization of SQL.  By doing this simply text search/replace, I was able to migrate my code from Mono.Data.Sqlite to System.Data.Sqlite and vice-versa.

Hi Ned,

Thanks. That's useful background. My understanding from this list is
that 3.6.x will be released some time quite soon? My hope is that
there'll be a Windows build of that available for download too, although
I don't yet understand who owns and drives that process.

(Somewhat off topic but I am starting to look at vNext which apparently
needs 3.4.1+ so a canonical Windows binary, and indeed Linux binary
would be useful for a number of reasons).

In the meantime I did build up some Windows binaries for 3.4.0, which
you might find it interesting to test with Mono.Data.Sqlite, assuming
you don't already have your own build.



I'm not sure of my opinion on using System.Data.Sqlite vs
Mono.Data.Sqlite Ned.

I guess I'd start by asking - if we have System.Data.Sqlite, and it
works on Mono, then why do we need Mono.Data.Sqlite?

Wouldn't it be better to concentrate on a supporting a single build of
System.Data.Sqlite that is platform agnostic, and/or perhaps build that
into Mono if there's interest?



More information about the Mono-devel-list mailing list