Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Внизобъединение ресурсов двух программ Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c