SQLite 3.6.23.1 wrapper + connector
awishformore
awishformore at gmail.com
Sun Jul 18 16:29:55 PDT 2010
On 19/07/2010 00:57, dsimcha wrote:
> == Quote from awishformore (awishformore at gmail.com)'s article
>> Hello there.
>> I've converted the .h file of the latest SQLite version to .d and I
>> thought I'd let the world know (as suggested on IRC ;). Maybe it will
>> save someone some work.
>> I've also written a nice connector class that wraps all the C functions
>> for convenient use in your application. It's very basic, but I will
>> probably add more features (like automatic preparation of statements and
>> automatic caching of several prepared statements) later.
>> For the time being both files are included in the download:
>> http://nexunity.com/sqlite4d.rar
>> I'm pretty new to this kind of stuff, so what I did to get it to work
>> was compiling the latest SQLite dll from source with dmc and then link
>> the .obj file into my app ( http://nexunity.com/sqlite3.obj ).
>> I'm sure there is a better way like compiling it as static lib (dmc
>> complained about no entry point) or having some kind of other file to
>> link into your app in order for it to compile and then use the dll. I
>> however couldn't figure it out and it works for me. Don't hesitate to
>> teach me nonetheless.
>> Any kind of feedback is always appreciated.
>> Greetings, Max.
>
> Awesome. D1, D2 or both? I've wanted a simple database for some time now, but
> been too lazy to write bindings or find one one myself, which encourages me to
> roll my own ad-hoc formats instead. Given that sqlite is in the public domain,
> maybe Phobos should eventually include SQLite + a nice D-ish wrapper for it, so
> that people can use it w/o creating dependency hell in their projects.
Hello.
Ah yeah, I guess I should have mentioned. I'm only working with D2 at
the moment, so it is D2 right now (because of the use of string).
However, it should be straight forward to replace all string occurrences
with char[] to get it to work on D1. I'm pretty sure that's the only
issue stopping it from working on D1.
Also, when using my wrapper, please note a few specifics with the bind
method:
- to bind a zeroblob to a prepared statement, pass an int array with a
single element with the size of the blob as value. Couldn't come up with
a better way to make that function available through the same method.
- to bind NULL just pass null ;)
- currently, it lets you pass anything and will try to treat it as
sqlite3_value struct reference, so be careful
Greetings, Max.
More information about the Digitalmars-d-announce
mailing list