[[PageOutline(2-5,Contents,pullout)]] = Helper functions to abstract the Trac SQL API = == Description == While there is considerable contention on the subject, I am one of those people that doesn't like to see SQL statements in python code (or C code, etc). I especially don't like it when the same basic statements are repeated all over the place. So TracSqlHelperScript is my attempt to encapsulate all of this logic in one place. These are functions I've already co-written for the TracHoursPlugin and then rewritten (some of them) for the GeoTicketPlugin. Instead of rewriting them again for yet another plugin where I want this functionality, I'm making a library out of them which hopefully I will backport to those plugins. I'd really like a better story for this in general, like having at least some of these convenient functions on the DB cursor. But quite frankly, I'm not an SQL expert, and IMHO it would be better for Trac to completely abstract its backend, so I'll leave whatever action for those that know better and stick with this library for my purposes. == Bugs/Feature Requests == Existing bugs and feature requests for TracSqlHelperScript are [report:9?COMPONENT=TracSqlHelperScript here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=TracSqlHelperScript&owner=k0s new ticket]. == Download == Download the zipped source from [download:tracsqlhelperscript here]. == Source == You can check out TracSqlHelperScript from [http://trac-hacks.org/svn/tracsqlhelperscript here] using Subversion, or [source:tracsqlhelperscript browse the source] with Trac. == Example == See the GeoTicketPlugin and the TracHoursPlugin for how these functions are used. Essentially, they're to help build new plugins with when you want to have a slightly abstracted database layer. I'd love help with this, if anyone would like to contribute. == Recent Changes == [[ChangeLog(tracsqlhelperscript, 3)]] == Author/Contributors == '''Author:''' [wiki:k0s] [[BR]] '''Author:''' [wiki:k0s] [[BR]] '''Contributors:'''