Страница 2 из 2

Добавлено: 04 мар 2005, 02:08
Naeel Maqsudov
Вариант который также приходил в голову. В MS SQL использовать identity колонку, а в Оракле сделать вставку ID из сиквенса, но нужно потом одним запросом получить @@Identity или текущее значение сиквенса... с этим проблемка...
Может у кого-то уже есть решение этой проблемы и он согласен поделиться этим решением?
Как-то я пропустил эту реплику...
Ну так надо все-таки чтобы приложение как-то определяло, с каким сервером оно работает (тем более, что выбор не большой - один из двух).
Многие инструменты разработчика для работы с БД позволяют выполнять макроподстановки в текст запроса.
Использовать в тексте запроса %KeyValue%, а перед выполнением заменять его на "Sequence1.NextValue", например, если в данный момент работа ведется с ораклом....

Добавлено: 04 мар 2005, 03:08
AiK
просто мах+1....работает давно и в промышленных объёмах
Слабо верится. При интенсивном использовании таблицы просто случаются всякого рода неприятности. 20-30 операторов, колбасящих одновременно накладные и пары-тройки манагеров с бухгалтерами, запускающих отчёты по этой же таблице хватает на то, чтобы при сдаче квартальных и тем более годовых отчётов сделать систему неработоспособной.
З.Ы: а вообще топику год скоро будет :)

Добавлено: 04 мар 2005, 10:25
Absurd
Уже год? Надеюсь, этот проект так и не увидел свет.

Как говорил Том Кайт "невозможно сделать СУБД - независимое приложение которое, по крайней мере, модифицирует данные".
Секвенсы Оракла в сто раз быстрее и надежнее людой самопальной лабуды. В других базах данных аналогичная ситуация.
Если надо опеспечить независимость от СУБД надо сделать Data Abstraction Layer, воспользовавшись соответствующим Design Pattern. Pattern этот хорошо описан.
http://java.sun.com/blueprints/corej2ee ... bject.html
У нас, чтобы опеспечить работу нашего текущего проекта с другой СУБД, надо просто написать другой DAO Driver, реализовав соответсвующие интерфейсы.