> My preference is stored procedures plus service locators
I know your work on the former with respect to the financial app you are working on. Would you care to elaborate a little on the latter (service locators) ?
Sure. What I prefer to do is to allow for a (cacheable) lookup on the basis of some criteria, either:
1. Function name or
2. Function name and first argument type
This assumes that whichever discovery criteria you are using leads to uniquely identifying a function.
Then from the argument list, I know the names and types of the arguments, and the service locator can map them in. This means:
1. You can expose an API which calls arguments by name rather than just position, and
2. You can add arguments of different types without breaking things as long as it is agreed that unknown arguments are passed in as NULL.
In Oracle, of course, one has revision based editions, which allow similar seamless migration, but in both cases you can slowly extend an API around your data in a way that applications can use without having to upgrade all applications using the db at the same time