parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

egr 13.01.2008 14:07 / 13.01.2008 14:07

P.S. не зря я до сих пор не использую регистрозависимые имена в SQL, после того как разок обжегся на этом с oracle.
Не разобрался как следует, вот и не пользуешь :) в долбаном оракле, даже если пользовать регистронезависимые имена, есть проблема, - например нельзя использовать слово user для имени таблицы. Тут не знаешь где наступишь :). Короче надо просто принять тот факт, что любую сущность (таблицу, столбец и пр.) нужно экранировать в запросе, - т.е. вместо User -> "User" и т.д. В MS SQL это будет User -> [User].

Да это нудно, но это сильно облегчает жизнь, особенно при использовании нескольких СУБД. Мы перешли на такой подход у себя в продукте, и избавились от множества проблем.

PS: Для облегчения труда, написан дополнительный слой построения "правильных" SQL запросов, для каждого диалекта СУБД, т.е. бизнес логика выражает запрос в некой абстрактной форме (объектной модели), которую затем драйвер переводит в специфичный SQL диалект, с правильным экранированием и другими штуками.