Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Подскажите идею запроса


Автор: kulikoff 26.12.2005, 20:49
Подскажите, как лучше реализовать такую задачу: каждый день происходит экспорт данных из dbf-файла в СУБД Oracle. с самим экспортом уже разобрался smile . Теперь такой вопрос - как лучше мне сделать так, чтоб при попытке загрузить в Oracle ранее загруженный dbf-файл программа выдавала предупреждение и при необходимости была возможность ещё раз его загрузить?
Я тут надумал такое: при экспорте данных в Оракл в дбф-файл в одно из полей (оно не используется) добавлять какой-нибудь код (символ или группу символов). Тогда при попытке записать из дбф-файла в Оракл, сначала выполняется запрос на проверку на наличие в этом файле в заданном поле определенной последовательности символов (слово какое-то, например), то тогда выводится предупреждение и какой-то переменной присваивается код, допустим 1. Если такой последовательности нет - код 2. Если код 1 - то при продолжении работы из таблицы в Оракле удаляются записи того экспорта (дата, когда этот экспорт состоялся, думаю должен вводиться пользователем) по дате его создания, после выполняется запрос на вставку новых значений в таблицу Оракла и обновление дбф-файла, т.е. добавления ключевого слова в заданное поле. При 2 - всё то же самое, только никакие записи из Оракла не удаляются...
И ещё, необходимо, крайне редко, но надо предусмотреть, что в один один может грузиться два дбф-а, и их необходимо различать, тут просто датой загрузки не обойтись... Как бы это решить не вводя дополнительное поле в таблицу Оракла, усложняя тем самым себе жизнь?
Понимаю, вопрос ёмкий, нопрошу помочь, вдруг кто знает более оптимальные пути решения этой задачи?

Автор: mspuz 28.12.2005, 12:45
kulikoff У меня была подобная задача, но у меня имелось поле с уникальными номерами и при загрузке проверялась каждая запись по уникальному номеру. А про последнее я не особо понял - тебе нужно позволить загрузить 2 одинаковых dbf'ника???

Автор: kulikoff 28.12.2005, 20:58
нет, просто в один день может быть два разных dbf'ника, при этом их надо как-то различать (тут я думаю про идентификацию по датам загрузки - слабое место), но такая ситуация возникает исключительно редко (не чаще нескольких раз в год). Вот и думаю, или создавать ещё одно поле, куда будет записываться ещё какой-то номер?
А про уникальное поле - у меня есть такое, там просто инкремент для строк стоит, может его как-то использовать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)