|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Victor Wagner 2:5020/400 17 May 2002 15:36:54 To : Dmitri Minaev Subject : Re: DB independent SQL statement? -------------------------------------------------------------------------------- Dmitri Minaev <dmin@mail.radiant.ru> wrote: >>>>>> Hello, Andrew Zhilenko 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 ', { oracle => AZ>> '', mysql => ' right join on id' }, ' where a.name like ? ', { oracle AZ>> => ' and a.id = b.id(+) ', mysql => '' }); my $t = AZ>> $sql->text('oracle'); DM> А если вынести функции, работающие с БД, в отдельные модули, а в программе DM> писать use MyProg::Oracle и use MyProg::MySQL? И еще к ним общего предка MyProg::SQL, в котором определить функции, реализующие запросы, которые не отличаются для всех используемых серверов... Hе проще ли Oracle на девятку сапгрейдить и использовать ансишный синтаксис джойнов всегда... Заметная часть остальных различий загоняется в хранимые процедуры, специфичные для конкретного SQL-сервера (если, конечно MySQL в список поддерживаемых не входит) -- http://www.communiware.ru http://www.ice.ru/~vitus --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/15178b5832fed.html, оценка из 5, голосов 10
|