Another SQLite3 wrapper

Alexey Khmara alex.khmara at gmail.com
Mon Nov 15 17:14:53 PST 2010


Hello!

I tried to find any module to work with SQLite3 in D2, and failed. I
found either just bindings to old SQLite versions or D1 modules with
"craft-SQL-on-the-fly" interface, all abandoned.
So I want to add just another D2 SQLite3 bindings and OO-wrapper and
uploaded to GitHub: https://github.com/bayun/SQLite3-D
It seems that no-one wants to support bindings for current SQLite
version.. Well, I'll try to do this. But I currently use very small
subset of it's features, so it's mostly mechanical translation without
further testing.
My tiny OO interface supports prepare/bind style of statements, and
seems to work good :-) But I'm new to D, and will be grateful to
somebody who can check, if my code is correct and don't have subtle
bugs.
Also I cannot figure if this code can be writen simpler:

void getRow(T...)(ref T args) {
	foreach(i, arg; args) {
		args[i] = mixin("getValue!" ~ typeof(arg).stringof ~ "(i)");
	}

}

I want there to call appropriate overloaded function for each item of
args tuple, but I was not able to do this without mixin - compiler
gives syntax errors when I try to write something like "args[i] =
getValue!T[i](i);"

Also if I try to assign to arg, and not args[i], changes are not
propagated to variables given as function arguments, even if I have
foreach(ref... syntax. Is it a bug or I just don't understand
something?

--
WBR,
Alexey Khmara


More information about the Digitalmars-d-announce mailing list