![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Автообновление программы через MSSQL server16.01.2014 18:11
Zerpico
Дабы не бегать по своей работе к каждому человеку который использует мою программу разумно сделать автообновление, которое будет обновлять программу, если загрузить новую версию на сервер. Испробовав множество способов, нашел самый простой в использовании (хотя и не самый правильный)
Итак алгоритм:
Но перед всем этим сначала создадим таблицу Updater (например) на MSSQL с полями: name - тип varchar; version -тип varchar; files - тип varbinary(max) (или любое другое blob-поле). Лучше сразу создать в таблице запись, где в поле name будет program. Добавить эту процедуру в код для извлечения номера версии программы: function TForm1.GetMyVersion: string; type TVerInfo=packed record Nevazhno: array[0..47] of byte; // ненужные нам 48 байт Minor,Major,Build,Release: word; // а тут версия end; var s:TResourceStream; v:TVerInfo; begin result:=''; try s:=TResourceStream.Create(HInstance,'#1',RT_VERSION); // достаём ресурс if s.Size>0 then begin s.Read(v,SizeOf(v)); // читаем нужные нам байты result:=IntToStr(v.Major)+IntToStr(v.Minor)+ // вот и версия... IntToStr(v.Release)+IntToStr(v.Build); end; s.Free; except; end; end; Теперь нам понадобится библиотека для распаковки архивов, ведь я буду хранить обновление в zip архиве, использую библиотеку SevenZip, добавляем в Delphi в library путь до исходников библиотеки. Теперь нам надо закачать сам архив с новой версией программы в базу данных. Я сделал форму с загрузкой обновления на сервер: по открытию OpenDialog думаю всё понятно переписываем путь в edit if OpenDialog1.Execute then cxButtonEdit1.Text:=OpenDialog1.FileName;
Номер версии лучше вписывать в MaskEdit с маской - !9.9.9.0;1;_ Необходимо добавить в Uses - SevenZip и ShellAPI.
Вот и всё. Главное не забыть перед компиляцией готовой программы для обновления прежде чем добавить её в архив, изменить номер версии программы. В этом способе есть некоторые недочёты и я это знаю. Но пока что я им пользуюсь и проблем не испытывал, хотя доработать всё же следует. Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |