Generic doesn't mean "do-all"
As a follow-up to my article on generic data access, I'd like to clear something up.
I think that everybody would agree that there are so many peculiarities for each DBMS that it is not possible to write code (don't even think about SQL) that would work with every SGBD.
What the article shows is that it's possible to write a good portion of the code generically, without having to rewrite the utility classes (such as DBHelper) each time. So, the main goal isn't necessarily to be able to switch to another DBMS without having to change an application’s code (we don’t change an application’s DBMS that often…). The goal is instead to have at hand utilities that will continue to work tomorrow, even if that next application we have to write requires a different DBMS.