Ik ben momenteel bezig met applicatie waar een database achter zit. Nu moet de gebruiker ook een mogelijkheid hebben om vanuit de applicatie query's uit te kunnen voeren op deze database. Het gaat om voorgedefineerde query's welke via de GUI uit te voeren zijn. Deze query's hebben parameters zodat de gebruiker criteria kan opgeven, voorbeeld:
De parameters komen in de GUI in een invul lijstje waar de gebruiker de parameters kan vullen. Echter wil ik de gebruiker ook de mogelijkheid geven bepaalde criteria niet in te hoeven vullen. Dus dat hij bijvoorbeeld alleen Criteria2 opgeeft. De query wordt dan:
De gebruiker krijgt uiteraard niet de SQL te zien maar alleen de in te vullen parameters in een mooi lijstje.
Hoe zorg ik ervoor dat de query dynamisch kan worden aangepast (parameter verwijderen/toevoegen) en toch uitvoerbaar blijft? Ik zat te denken aan een SQL parser welke de SQL omzet in een tree, maar dit is nogal veel werk.
Ik maak gebruik van Delphi (BDS2006).
code:
1
| SELECT * FROM "Table" WHERE "Column1" = :Criteria1 AND "Column2" = :Criteria2 |
De parameters komen in de GUI in een invul lijstje waar de gebruiker de parameters kan vullen. Echter wil ik de gebruiker ook de mogelijkheid geven bepaalde criteria niet in te hoeven vullen. Dus dat hij bijvoorbeeld alleen Criteria2 opgeeft. De query wordt dan:
code:
1
| SELECT * FROM "Table" WHERE "Column2" = :Criteria2 |
De gebruiker krijgt uiteraard niet de SQL te zien maar alleen de in te vullen parameters in een mooi lijstje.
Hoe zorg ik ervoor dat de query dynamisch kan worden aangepast (parameter verwijderen/toevoegen) en toch uitvoerbaar blijft? Ik zat te denken aan een SQL parser welke de SQL omzet in een tree, maar dit is nogal veel werk.
Ik maak gebruik van Delphi (BDS2006).
"The shell stopped unexpectedly and Explorer.exe was restarted."