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

Вниз

объединение ресурсов двух программ   Найти похожие ветки 

 
KIE   (2003-11-14 23:42) [0]

Есть две аналогичные программы. Они стоят на разных компах, которые в свою очередь завязаны в сеть. Задача такая:
Нужно создать прогу, которая бы по требованию копировала ресурс (ДБ файлы) из одной проги (с одного компа) в другую, замещая при этом старые файлы.
Как это делается я знаю. Написал прогу, но при проверке обнаружил следующее:
- фалы не заменялись. Моя догадка: "Ресурс занят другой программой", т.е. нельзя поменять ДБ файл если его кто-то юзает.
Использовал ф-ию FileCopy.
Как мне сделать так, что бы можно было замещать файлы во время работы этих программ??????

Пытался обойти:
- создал прогу, в которой использовал стандартные компоненты BDE (Table, DataSet, ...)ю Подключался к одному файлу, к другому, но при изменении одного из них (как мне надо), т.е. при изменении их содержимого, ельфи безбожно орала, мол "У ВАС НЕТ ДОСТУПА! НЕ МОГУ СОЗАТЬ _nnnn.db файл". Я открыл доступ к той папке, где находилась програ и все равно ничего не получается.
Господа! Пожалуйсто подскажите, как всё-таки можно организовать этот процесс.


 
Юрий Федоров ©   (2003-11-14 23:55) [1]

Исходный код "двух аналогичных программ" доступен ?


 
KIE   (2003-11-17 00:22) [2]

нет. Эти проги писал не я и аисаны очень давно были, по спец заказу :(


 
Zergling ©   (2003-11-17 06:01) [3]

> т.е. нельзя поменять ДБ файл если его кто-то юзает.

Небоитесь ли ввести хаос в ДБ файл при таком потходе или вобще потерять данный файл при возникновении фатальной ошибки?


 
sniknik ©   (2003-11-17 08:24) [4]

если файл открыт другой программой в монопольном режиме и кода этой другой нет то практически невозможно.
(в NT системах можно принудительно закрыть занятый файл (возможно и программным путем), но это скорее всего приведет к краху "подопытной")

ди и даст ли это чего? к примеру замещаем файл с параметрами(ini) и ждем что поведение программы изменится? вряд ли, скорее всего параметры в ней читаются и устанавливаются при старте.

заменяя файл ДБ нужно и о индексах, если они есть, позаботится.


 
Anatoly Podgoretsky ©   (2003-11-17 09:13) [5]

Юрий Федоров © (14.11.03 23:55) [1]
Совсем ни к чему код этих программ, а вот как копировал не помешало бы привести, есть подозрение, что ни так.
Ну а для баз вообще не нужны такие извращения, когда в БДЕ есть специальные функции по копированию таблиц.
Но судя по скупо приведеным сообщением у него нет прав вообще!


 
KIE   (2003-11-17 09:30) [6]

CopyFile (PChar("c:\temp\110903.db"),PChar("c:\GS\021003.db"), False), ключ False использую для того, что бы заменить существующий файл, иначе он просто не перепишет его.
А вообще как этот процесс можно организовать по другому? Знатоки, идею подкиньте хоть :(


 
Anatoly Podgoretsky ©   (2003-11-17 09:34) [7]

А этого тебе не достаточно? Anatoly Podgoretsky © (17.11.03 09:13) [5]


 
Erik ©   (2003-11-17 11:32) [8]

Идея есть и проста, пишеш маленький TCP или UDP сервер. Устанавливаеш его на машину где надо заменять фаил. Пишеш клиента который посылает пакет серверу. Сервер закрывает работающею программу и делает необходимое оповешение. После либо копируеш фаил либо передаеш серверу и он сам его перезаписывает. Советую воспользоватся компонентами Indy. UDP сервер сможет создать даже ребонок.



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
3-89714
AlexiNx
2003-11-03 18:31
2003.11.27
Fast Report


6-90028
SPIRIT
2003-10-01 01:53
2003.11.27
Отправить письмо


6-90029
UltraFreak
2003-10-02 19:57
2003.11.27
Какое приложение слушает порт?


1-89961
TUser
2003-11-17 17:33
2003.11.27
Canvas


1-89831
Goorus
2003-11-17 03:09
2003.11.27
Graphics