• Lynn Pettis (3/11/2013)


    fmuzul (3/11/2013)


    Lynn Pettis (3/11/2013)


    In addition, if the underlying table structure changes but the output of the stored procedures remains the same, you isolate the changes to the database. You modify the stored procedures to use the new table structures ensuring that the input and output of the procedures remains the same, the application does not need to change.

    Replace "stored procedure" with "C++ procedure" and swap "application" with "database" and you get a perfectly valid statement again.

    If you work with s.p., you isolate the changes to the database. And this can be good if you don't want to change the application.

    If you work with the application language, you isolate the changes to the application. And this can be good if you don't want to change the database logic (or even don't want to have logic at all in the database).

    DBAs obviously tend to prefer s.p. because they are accustomed to them.

    Developers should prefer to avoid s.p.

    You are operating under a false perception of me. I am not a DBA. I am a DBA/Database Developer/Developer. I have worked on all sides of the application. My perception comes from that experience.

    If your application needs to support multiple database backends, then develop those database backends separately. Support the multiple code bases needed. Make use of the capabilities of each of those DB Engines to get the most from them to improve the performance of the application using those DB Engines.

    There is a fallacy of truly portable code. I don't write Standard SQL code, I write code that makes the best use of the underlying DB engine. This provides a performant system upon which an application can be built.

    Your philosophy is different from mine.

    A single code base is a must for me. I absolutely don't want to write 3 versions of a procedure to support 3 different DB engines. I prefer to save the time of the developer rather than the time of a PC running a piece of code. I consciously try to ignore the non-standard capabilities of the DB engines. They are not worth the time.

    Also, to be able to "make the best use of the underlying DB engine" you must acquire a deep knowledge of the DB engine, and I am not interested in it.

    If you like your way of living, and you can find customers that agree with it, that's good !

    Be happy and have a nice day 🙂