Как стать автором
Обновить

Комментарии 18

А использовать для этого MS SQL Server — это не overkill, нет?

Ну и в целом, статья не очень глубокая, мягко говоря.
Оверкилл, конечно.
Я делаю по другому: храню в табличке на SQL сервере все файлы программы, а потом когда нужно поменять один шаблон например, то добавляю новую запись в эту таблицу, а старый файл деактивирую в таблице.
В итоге у меня остается история версий и если что можно быстро откатить изменения в базе и клиенты обновятся обратно на старые версии файлов.
и как много времени уходит чтобы залить все файлы в базу если вдруг они все обновились? Я тоже об этом думал, но с архивом как то попроще выходит.
Немного. обычно обновляется само приложение и пара-тройка шаблонов.
Все это делает через админский интерфейс за 1 минуту.
НЛО прилетело и опубликовало эту надпись здесь
Ясненько, научусь так делать, но мне просто в цифрах легче ориентироваться чем в названиях.
Жесть. А забирать по http/ftp уже не вариант? Самый простой вариант — прога при загрузке лезет в инет (в том числе через прокси), качает какой-нибудь xml, да хоть ini и при наличии новой версии качает инсталлятор, запускает его и закрывается сама. Инсталлятор по окончанию запускает обновленную программу.
Это в рабочей сетке, так что интернет не вариант, тем более там такие тети сидят что впадают в панику, увидев окно где больше одной кнопки. Поэтому хотел сделать обновление в тихом режиме всего лишь ответив на вопрос: «Обновить программу? Да/Нет»
А что, кроме интернета других http не бывает?
Это как? Рабочая сеть не пускает в интернет куда попало, тем более так быстрее явно будет обновляться, пока из интернета скачается на скорости 10 кб/с. И еще файл ведь где надо хранить чтобы к нему был прямо доступ.
Так я еще раз спрашиваю: кроме интернета, других http вы не знаете? Свой сервер в сети развернуть не судьба?
к серверам имею только доступ к Базам
Ну так получите больше. То, что вы делаете — все равно нарушение безопасности.
А для delphi правда нельзя использовать технологии вроде ClickOnce?
Вообще освоить Local Update Publishing при наличии WSUS было бы быстрее, ну и плюс сохранилось бы некоторое единообразие установки для пользователя. Внутри ведь по сути — тоже SQL-база со ссылками на файлы и само хранилище файлов, но зато уже готовое.
Самые очевидные ляпы:

1. Ни одна ошибка не обрабатывается (блоки finally/end пустые либо пишут в стиле КО). В случае, когда ошибка произойдет после переименования программы, но до полной установки обновления (свет мигнул и свич по дороге завис) — программа в следующий раз просто не запустится, ибо ее уже не будет.
2. Именование переменных (точнее его отсутствие) — тихий ужас.
3. В случае запуска программы с параметрами после обновления программа запускается уже без них.
Школокод на хабре? No way!
Вопрос по сути — зачем нужна вот эта магия:
  TVerInfo=packed record
    Nevazhno: array[0..47] of byte; // ненужные нам 48 байт
    Minor,Major,Build,Release: word; // а тут версия
  end;
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории