Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как передать документ или обновление программы пользователям через SQL Server?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4339
Пользователи запускают клиентское приложение, оно коннектится к серверу MS SQL Server.
Проблема в том, что я делаю дополнения и распространяю их вручную.
Обновление представляет собой новый файл exe.
Задача состоит в передаче пользователю этого файла через сервер. А там клиентское приложение разберётся, как себя обновить (переместить запущенный файл во временную папку, на своё место записать полученный файл, перезагрузиться и удалить программу из временной папки).
1 сен 17, 14:51    [20764798]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
Alozar
Member

Откуда:
Сообщений: 141
Тут больше вопрос не к SQL-серверу, а к приложению.
Запись в виде двоичных данных можно конечно, но не проще ли исполняемый файл просто разместить где-то на FTP/сетевой папке/чем-то ещё файловом?

А для самого обновления делайте проверку на наличие новой версии файла. Если есть запускайте отдельное приложение, которое заменит исполняемый файл, т.к. при открытом основном приложении файл будет занят. Ну или запускайте в начале проверяющий процесс, который затем запустит основной.
1 сен 17, 15:13    [20764863]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7764
Charles Weyland,

а как получит клиент обновление, если изменится адрес сервера?
1 сен 17, 15:23    [20764895]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3708
Charles Weyland
Пользователи запускают клиентское приложение, оно коннектится к серверу MS SQL Server.
Проблема в том, что я делаю дополнения и распространяю их вручную.
Обновление представляет собой новый файл exe.
Задача состоит в передаче пользователю этого файла через сервер. А там клиентское приложение разберётся, как себя обновить (переместить запущенный файл во временную папку, на своё место записать полученный файл, перезагрузиться и удалить программу из временной папки).


И в чем вопрос?
Приложение читает специальную таблицу в базе, определяет, есть ли обновление, если да - читает блоб из нужной записи и сохраняет в виде х.з.к. файла
1 сен 17, 15:28    [20764914]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
dies irae
Member

Откуда:
Сообщений: 78
create table files(name nvarchar(1024) primary key, version int not null, data varbinary(max) not null)

при подключении приложение передаёт версию и имя файла, который нужно обновить

если версия переданного файла меньше того, что лежит в базе - возвращаем файл. например:

select name , data
from files 
where name = @name and version > @version
1 сен 17, 15:55    [20765017]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4339
Владислав Колосов
Charles Weyland,

а как получит клиент обновление, если изменится адрес сервера?

он не изменится.
Если изменится, то пользователь позвонит с жалобами, и мы ему подскажем, что поправить в ini-файле.
1 сен 17, 16:20    [20765072]     Ответить | Цитировать Сообщить модератору
 Re: Как передать документ или обновление программы пользователям через SQL Server?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7764
Charles Weyland,

сохраненный файл после получения необходимо проверять на достоверность, хотя бы контрольной суммой.
2 сен 17, 16:33    [20766939]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить