![]() |
|
|
![]()
|
|
| kulikoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 5.11.2005 Где: Киев Репутация: 1 Всего: 1 |
Подскажите, как лучше реализовать такую задачу: каждый день происходит экспорт данных из dbf-файла в СУБД Oracle. с самим экспортом уже разобрался
Я тут надумал такое: при экспорте данных в Оракл в дбф-файл в одно из полей (оно не используется) добавлять какой-нибудь код (символ или группу символов). Тогда при попытке записать из дбф-файла в Оракл, сначала выполняется запрос на проверку на наличие в этом файле в заданном поле определенной последовательности символов (слово какое-то, например), то тогда выводится предупреждение и какой-то переменной присваивается код, допустим 1. Если такой последовательности нет - код 2. Если код 1 - то при продолжении работы из таблицы в Оракле удаляются записи того экспорта (дата, когда этот экспорт состоялся, думаю должен вводиться пользователем) по дате его создания, после выполняется запрос на вставку новых значений в таблицу Оракла и обновление дбф-файла, т.е. добавления ключевого слова в заданное поле. При 2 - всё то же самое, только никакие записи из Оракла не удаляются... И ещё, необходимо, крайне редко, но надо предусмотреть, что в один один может грузиться два дбф-а, и их необходимо различать, тут просто датой загрузки не обойтись... Как бы это решить не вводя дополнительное поле в таблицу Оракла, усложняя тем самым себе жизнь? Понимаю, вопрос ёмкий, нопрошу помочь, вдруг кто знает более оптимальные пути решения этой задачи? |
|||
|
||||
| mspuz |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 20.6.2005 Где: Ногинск Репутация: нет Всего: нет |
kulikoff У меня была подобная задача, но у меня имелось поле с уникальными номерами и при загрузке проверялась каждая запись по уникальному номеру. А про последнее я не особо понял - тебе нужно позволить загрузить 2 одинаковых dbf'ника???
|
|||
|
||||
| kulikoff |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 5.11.2005 Где: Киев Репутация: 1 Всего: 1 |
нет, просто в один день может быть два разных dbf'ника, при этом их надо как-то различать (тут я думаю про идентификацию по датам загрузки - слабое место), но такая ситуация возникает исключительно редко (не чаще нескольких раз в год). Вот и думаю, или создавать ещё одно поле, куда будет записываться ещё какой-то номер?
А про уникальное поле - у меня есть такое, там просто инкремент для строк стоит, может его как-то использовать? |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |