Гы-гы! Я это уже позавчера узнал :) Теперь у меня другая проблема -
как сделать все красиво. Вариант "if (majorVersion == 2 &&
minorVersion == 1)" не предлагать.
Чем проверка на существование RDB$PROCEDURE_TYPE не подходит ?
Ну, во-первых, я не буду делать 4 раундтрипа к серверу, читать метаданые
только для того чтоб узнать что там есть, а чего там нет.
Но я имел ввиду другое. Есть два варианта:
а) иметь один клас и в нем делать проверку на версию сервера, и
исполнять запрос с RDB$PROCEDURE_TYPE или нет, в зависимости от версии.
Дешево и сердито, но некрасиво в дальнейшей перспективе.
б) иметь несколько классов с различной ф-циональностью (классический ОО
с перекрытием методов), в самом начале работы с базой определятся, какие
классы грузить. Ну что-то типа провайдерной архитектуры, но в драйвере и
с другой стороны. Красиво, но сложно.
Ну вот и спрашиваю, а может есть и третий вариант :)
Роман