• [font="Verdana"]While I like the idea of using code generators for tasks like this, I do have an issue with the approach of recommending a row-by-row interface.

    Also, the typical CRUD interface is at a table level, rather than at an "object" level. For example, you will have one part of the interface for the invoice_header, and another for the invoice_line. To me a better approach is to create an interface that takes many invoices, and have the database code written at that level. It can then use set-based logic.

    I don't believe that database interfaces require a row-by-row approach, or that they have to be formed around the physical tables. So use with caution.

    [/font]