Ответ автора OTL на мою электронную почту:
OTL передает запросы с заполнителями на уровни API БД.Соглашения об именах для фактических переменных связывания различны для разных типов БД.Например, для Oracle
SELECT * FROM staff WHERE fname=:f_name<char[20]>
будет преобразовано в:
SELECT * FROM staff WHERE fname=:f_name
плюс несколько вызовов связывания переменных хоста.
Для MS SQL Server или DB2тот же SELECT будет выглядеть следующим образом:
SELECT * FROM staff WHERE fname=?
В руководстве описано, что для MS SQL, DB2 нельзя использовать заполнитель с одним и тем же именем более одного раза.Операторы SQL с переменными-заполнителями / связыванием относительно дороги в создании, поэтому, если вы создаете экземпляр параметризованного SQL через otl_stream, имеет смысл повторно использовать поток столько, сколько вы можете.
Если у вас есть дополнительные вопросы илипредложения о том, как я могу улучшить руководство по OTL, не стесняйтесь, пишите мне.
Приветствия, Сергей
pheadbaq писал:
Привет, я оценивал библиотеки C ++ DBнедавно, чтобы использовать его в качестве основы для библиотеки ORM, которую я хочу построить, я все больше и больше стремлюсь к OTL.Между прочим, это выглядит очень красиво, и кажется, что оно удовлетворит большинство моих потребностей.У меня только один затяжной вопрос, который я не могу уточнить, прочитав документы.Передает ли OTL параметризованный запрос базовой СУБД или объединяет аргументы и запрос, который я передаю потоку OTL, в одну строку и передаю их СУБД?
Другими словами, если я передаюOTL этот MSSQL-запрос вместе со строкой «Bob» в качестве переменной связывания:
SELECT * FROM staff WHERE fname = :f_name<char[20]>
Создает ли OTL-парсер следующее:
SELECT * FROM staff WHERE fname = 'Bob'
Или это:
SELECT * FROM staff WHERE fname = @f_name
вместе с моей строкой в качестве параметра
Я отправил этот же вопрос на StackOverflow.com, если вы хотите ответить на него: Является ли библиотека базы данных C ++ OTL SQL с использованием параметризованных запросов подкапюшон или струнный конкат?
Спасибо за потраченное время