|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Bulat Ziganshin 2:5093/4.126 16 May 2002 20:18:08 To : Andrew Zhilenko Subject : DB independent SQL statement? -------------------------------------------------------------------------------- Wednesday May 15 2002, Andrew Zhilenko writes to All: AZ> Кто как решает проблему отличий SQL statements, когда скрипт должен AZ> работать с разными базами (напр. Oracle и MySQL)? Хотелось бы, чтобы AZ> одинаковые части statement были в скрипте всего один раз - чтобы не AZ> надо было в десяти местах делать исправления. Что-то типа: my $sql = AZ> new SQL::Crossplatform('select a.a, b.b, a.c from a, b ', AZ> { oracle => '', mysql => ' right join on id' }, ' where a.name AZ> like ? ', { oracle => ' and a.id = b.id(+) ', mysql => AZ> '' }); my $t = $sql->text('oracle'); AZ> но более адванснутое :-) писать генераторы sql-операторов и их кусков. в данном случае вызов будет: sql_rjoin( 'select a.a, b.b, a.c', 'a', 'b', 'id', 'a.name like ?', '') я лично так генерил IF-функции и даты-константы кстати, иногда под разные sql-сервера лучше генерить разный код. особенно если они так сильно различаются классом, как твои Bulat, mailto:bulatz-AT-fort.tatarstan.ru, ICQ: work 15872722, home 11849833 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33403ce415c2.html, оценка из 5, голосов 10
|