Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Обновление БД   Найти похожие ветки 

 
Nous Mellon ©   (2004-04-03 18:06) [0]

Сей вопрос я давненько уже вскользь задавал АП, вот теперь встала задача его практической реализации я решил более подробно узнать Ваши мнения. Итак есть БД Аксесс(mdb) и есть скажем ее копия расположеная где-то
на просторах web и доступная для скачивания. Та что в Инете содержит практически те же таблицы но с бОльшим кол-вом данных. Собственно нужно обновить Конеретные таблицы просто заменив их таблицами из свежей БД.
Лично я вижу этот процесс в два этапа
1. получение из интернета файла новой БД и сохранение его в Темп диретории.
2. Замена ОДНОЙ из таблиц.
Разыскивая информацию по перовму пункту нашел в Кэнту упоминание о том что можно скачать файл средствами WinInetAPI, но может это можно сделать более удобными способами?
Анатолий говорил о CopyFile, но как его здеь правильно применить..
А по второму пункту ничего я не нашел поэтому и обращаюсь к вам...


 
Anatoly Podgoretsky ©   (2004-04-03 20:32) [1]

Предпочитаю менять не таблицы, а записи, введя в таблицу дополнительное поле - тип изменения A-D-U


 
Nous Mellon ©   (2004-04-03 21:01) [2]


> Предпочитаю менять не таблицы, а записи, введя в таблицу
> дополнительное поле - тип изменения A-D-U

Хм.. В смысле менять их поочередно например в цикле? А как же быть
с первым пунктом?
Да и почему у вас такое предпочтения? Из-за невозможности поменять сразу всю таблицу физически?


 
Anatoly Podgoretsky ©   (2004-04-03 21:33) [3]

Получение любым путем, хоть с помощью Интернет Эксплорера или по почте, хоть программным путем, с помощью любого протокола, хоть вручную.
Последовательность такая.

1. проверка на обновление
2. закачка данных, любым путем
3. обновление данных
4. выход или продолжение работы.


 
DevMaster ©   (2004-04-03 22:06) [4]

>Nous Mellon ©   (03.04.04 18:06)  
>1. получение из интернета файла новой БД и сохранение его в >Темп диретории.

Зачем? если ты получил всю базу так замени всю.


 
Nous Mellon ©   (2004-04-03 22:08) [5]

желательно реализовать получение программно чтобы пользователь его как такого не видел... Какой компонент порекомендуете?
> 3. обновление данных

Вы говорите что предпочитаете обновлять записи.. но мне желательно именно просто заменить таблицу. То есть я думаю так: удаляем старую таблицу и копируем новую.. но вот как осуществить это програмно..Или это impossible?


 
YurikGl ©   (2004-04-03 22:14) [6]

Как заменить програмно что? Таблицу? Ну дык create table


 
Anatoly Podgoretsky ©   (2004-04-03 22:21) [7]

Зачем гнать по сети те данные, которые уже есть, нужно гнать только дельту.
Для реализации подходит TTable, TQuery, TADO...


 
DevMaster ©   (2004-04-03 22:25) [8]

>Вы говорите что предпочитаете обновлять записи.. но мне >желательно именно просто заменить таблицу. То есть я думаю >так: удаляем старую таблицу и копируем новую.. но вот как >осуществить это програмно..Или это impossible?

YouBase.Close; - или что то в этом роде!
CopyFile(YouBase,TempDir,False);
CopyFile(YouInetBase,YouBase,True);
Вставь progressbar и по Timer запускай его!


 
Nous Mellon ©   (2004-04-03 23:02) [9]


> Зачем? если ты получил всю базу так замени всю.

не там немного сложнее... есть архивные таблицы и текущие таблицы.
Текущих две. Изменения находятся только в них. На вэб-сервере БД только с двумя этими текущими таблицами. Мне в принципе не страшно гонять всею таблицу а не дельту потому что масимальное кол-во записейц в таблице 255.

> Зачем гнать по сети те данные, которые уже есть, нужно гнать
> только дельту.
> Для реализации подходит TTable, TQuery, TADO...

по каким методам этих классов,  порекомендуете почитать справку чтобы перегонять только обновление? То есть если я вас правильно понял то у у этих классов есть реализованные методы позволяющие обновить Рекордсет...
Причем судя по вашему посту они поддерживают и обновление через Инет..


 
DevMaster ©   (2004-04-03 23:10) [10]

Ну раз так то легче(реализовать)будет просто замену таблиц нужных!
В Темп скинул базу с инета открыл и пока не конец гони в новую(перед началом отчищеную) - это не задумываясь, а если хочеш только новые то создай поле в базе DateTime и по нему ориентируйся! Для реализации лучше всего Query - всетики SQL!


 
Nous Mellon ©   (2004-04-04 09:48) [11]

2DevMaster
То есть я так понимаю вы предлгаете сделать следующее
1. скачать БД с инета - опять таки может быть подскажете каким способом это лучше сделать
2. Сделать запрос к таблице в этой БД скажем на определенную дату.
3. добавить все записи запроса к старой таблице и снести БД
Верно?
PS Хотя мне все равно придется перегонять полнотстбю таблицы из-за некоторой специфики самой программы..



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-1081855903
Pavel
2004-04-13 15:31
2004.05.02
printing


14-1081438044
TButton
2004-04-08 19:27
2004.05.02
Мониторинг сети


7-1075898695
AlexTregubov
2004-02-04 15:44
2004.05.02
ИК-порт


6-1078344029
AlexeyITN
2004-03-03 23:00
2004.05.02
Есть ли комп в сети? да и по-дешевле...


4-1078726836
graY
2004-03-08 09:20
2004.05.02
Как сделать так чтоб окно было всегда на первом плане