Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2015, 22:50   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию Прикрепить файл проекта к БД

Собственно вопрос как это сделать? БД в sql server. Знаю что для этого используется поле blob. Хочу попробовать сделать автообновление проекта таким образом. Это возможно? И как осуществить?
Спасибо.
Ernest027 вне форума Ответить с цитированием
Старый 09.09.2015, 23:09   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Автообновление проекта - чего это? Да еще используя blob поле. Ноу-хау, не иначе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.09.2015, 23:12   #3
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Бред да? А как сделать автообновление? Ну я чтонибудь изменил в проекте,а пользователь зашел в проект и пошла проверка на более позднюю версию и если такая есть скачал ее автоматом. Только не через инет. Возможно такое?
Ernest027 вне форума Ответить с цитированием
Старый 10.09.2015, 09:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Возможно такое?
В базу пихать не надо. Для обновок обычно организовывают отдельный комп-сервер. У него есть либо расшаренная папка с обновками либо сервер с прослушиванием сети. Вопрос в том как ты обновки будешь складывать. БД этим лучше не напрягать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2015, 17:24   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

У нас была такая штука - маленькая прожка, на которую вёл ярлык на рабстоле юзера, при запуске с такого ярлыка (без параметром ком. строки) она коннектилась в базу, смотрела в таблице файлов список файлов и их мд5 хеши, по этому списку пробегалась в каталоге всей клиентской проги, в т.ч. основной экзешник , читала файлы из списка, и сравнивала хеши с теми файлами что в папке, если отличаются или отсутствуют - выгружала из базы, после чего запускала основной экзешник а сама закрывалась. При запуске с нужными параметрами ком. строки она позволяла загружать файлы в базу (обычно это делали мы сами, разрабы), чтобы все юзеры при след запуске обновились.

Заливать (и читать) в базу тоже несложно, для сиквела (ms sql server) мы использовали varbinary(max) поля в таблице для самих данных и по небольшой строке для имени файла (с папкой) и для хеша. Из дельфи кода мы вызывали серверную хранимую процедуру и в неё через AdoStoredProcedure по параметрам кидали файлы
примерно так, но это немного от другого код но делает тоже самое, только для картинок, а не файлов вообще, в аплоаде заливка выполняется для текущей (в терминах класса TMy) сторедпроцедуры Sp (в этот момент это инсертящая процедура), а в чтении датасет это тоже оное же (текущая, но уже селектящая), только кинуто параметром. Вам то достаточно будет токько работы с потоками и блобполями
Код:
procedure TMy.LoadPictureToBitmap(Bitmap: TBitmap; DataSet: TDataSet; FieldName: string);
var
  MS: TStream;
begin
  try
    MS := DataSet.CreateBlobStream(DataSet.FieldByName(FieldName), bmRead);
    Bitmap.LoadFromStream(MS);
  finally
    MS.Free;
  end;
end;

procedure TMy.UploadPicture(Bmp: TBitmap; ParamName: string);
var
  DP : TParameter;
  MS: TMemoryStream;
begin
  DP := SP.Parameters.ParamByName(ParamName);
  MS := TMemoryStream.Create;
  try
    Bmp.SaveToStream(MS);
    MS.Position := 0;
    DP.LoadFromStream(MS, ftBlob);
  finally
    MS.Free();
  end;
end;

Последний раз редактировалось phomm; 10.09.2015 в 17:28.
phomm вне форума Ответить с цитированием
Старый 10.09.2015, 18:50   #6
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Просто я думал закидывать проект в базу,а в соседнем поле писать номер версии. При запуске проги шла бы проверка на обновление.
Ernest027 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прикрепить к письму файл. Zis67 Общие вопросы Delphi 3 11.07.2012 20:10
Прикрепить файл к ЕХЕ. И вытащить его оттуда. TwiX Общие вопросы Delphi 2 16.06.2010 20:26
КАК ПРИКРЕПИТЬ ФАЙЛ VBA К ПРИЛОЖЕНИЮ? Inoko Microsoft Office Excel 3 12.07.2009 20:31
Прикрепить файл к письму -=L.Morgan=- Работа с сетью в Delphi 2 04.05.2009 19:33
Как прикрепить файл к письму? micaell Работа с сетью в Delphi 5 17.03.2009 15:04