I had a look on Google, and found some stuff on database abstraction layers, which I must admit is a new one on me.
Is this something that people would recommend doing as a matter of course, or something that would be surplus to requirements most of the time?