Kode til SQL Engine
Lidt baggrund; Mit hobbyprojekt p.t. er en parser til filer med slægtsinformationer lagret efter den internationale GEDCOM standard. Data består i nogle få rådata med masser af mange-til-mange relationer.Målet er, at parseren skal blive til en ODBC eller OLE DB driver med begrænset SQL support (kun læsninger - dvs. SELECT med inner/outer joins, where betingelser etc).
Selve fortolkningen af GEDCOM filen og opsplitning i ca. 20 "tabeller" (objekter nedarvet fra TList) sker i parseren, så SQL motoren skal kunne hægtes på disse.
jeg har fundet et par forskellige sql engines på Torrys og Delphi Super Page - men ikke nogen der kan håndtere joins over 3 eller flere tabeller med acceptabel hastighed.
Jeg har også forsøgt med at embedde SQLite - dens join motor er rigeligt hurtig nok, men den er for langsom til at oprette records når parseren kører.
En GEDCOM fil med nogle få tusinde personers indbyrdes familieforhold bliver til ca. 1 million records hvad min parser klarer på nogle få hundrede millisekunder - mens SQLites recordoprettelse tager 30-40 sekunder...
At anvende Paradox, MySQL, Oracle, MsSQL eller Access er ikke brugbart ifht at lave en ODBC / OLE DB driver til GEDCOM formatet - driveren skal være "stand-alone" .
Så det jeg søger er kildekoden til en rimeligt effektiv SQL Motor (eller blot select-delen af en) som understøtter selects med joins og gerne group by, distinct og aggregeringsfunktioner.
Kildekolden kan være i alt fra Delphi 1 til 6 - og skal være gratis.
Nogen der har noget liggende, evt. et link til noget, et skoleprojekt eller et eksempel fra en bog?
Vh
Troels
