Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

Запаковать надо файл   Найти похожие ветки 

 
Человек   (2007-08-29 09:58) [0]

Есть база данных. Надо бы её как-то запаковать, а при работе проги распаковывать и работать с ней. Подскажите, как это сделать?


 
alshtam ©   (2007-08-29 10:00) [1]

статья из "Delphi Worl 6" сам не проверял
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Упаковка таблиц Paradox & dBase

Процедура упаковки таблиц Paradox & dBase.
В процедуру передается TTable c любым состоянием свойства Active.
Состояние Active после выполнения процедуры остается предыдущим.
Процедура предусматривает отключение всех визуальных DbControls,
с последующим их подключением.

Зависимости: Bde, Db, DbTables
Автор:       Александр, dbwork@kor.kes.ru, Кореновск
Copyright:   Из исходного кода Database Workshop 4.12 (c)2002 Degisy Software
Дата:        23 мая 2002 г.
***************************************************** }

procedure Bde_PackTable(DataSet: TDataSet);
var
 hDb: hDBIDb;
 Tbl: TTable;
 Props: CURProps;
 CrDesc: CRTblDesc;
 Save: Boolean;
begin
 if (DataSet is TTable) then
 begin
   Tbl := TTable(DataSet);
   Save := Tbl.Active;
   Tbl.Active := True;
   try
     Check(DbiGetCursorProps(Tbl.Handle, Props));
     if (Props.szTableType = szPARADOX) then
     begin
       FillChar(CrDesc, SizeOf(CRTblDesc), 0);
       StrCopy(CrDesc.szTblName, Props.szName);
       StrCopy(CrDesc.szTblType, Props.szTableType);
       CrDesc.bPack := True;
       Check(DbiGetObjFromObj(hDBIObj(Tbl.Handle), objDATABASE, hDBIObj(hDb)));
       Tbl.DisableControls;
       Tbl.Active := False;
       Check(DbiDoRestructure(hDb, 1, @CrDesc, nil, nil, nil, False));
     end
     else if (Props.szTableType = szDBASE) then
     begin
       Tbl.Active := True;
       Check(DbiPackTable(Tbl.DBHandle, Tbl.Handle, nil, szDBASE, True));
     end;
   finally
     Tbl.Active := Save;
     Tbl.EnableControls;
   end;
 end;
end;
Пример использования:

Bde_PackTable(Table1);


 
Сергей М. ©   (2007-08-29 10:02) [2]


> как это сделать?


Задействовать реализацию любого подходящего алгоритма компрессии/декомпрессии.


 
Человек   (2007-08-29 10:03) [3]


> alshtam ©   (29.08.07 10:00) [1]


У меня Access"овская база данных


 
Sergey13 ©   (2007-08-29 10:08) [4]

> [0] Человек   (29.08.07 09:58)
> Подскажите, как это сделать?

Я бы очень подумал прежде чем делать это.
А как сделать - вызвать ахиватор например.


 
Человек   (2007-08-29 10:10) [5]


> Sergey13 ©   (29.08.07 10:08) [4]


> Я бы очень подумал прежде чем делать это.

А почему нет?


 
Sergey13 ©   (2007-08-29 10:23) [6]

> [5] Человек   (29.08.07 10:10)
> А почему нет?

При упаковке/распаковке происходит сбой и вся база (или результаты сеанса работы) идет лесом.
Да и смысл то какой в этом? Место на диске экономищь?


 
Человек   (2007-08-29 10:27) [7]


> Sergey13 ©   (29.08.07 10:23) [6]
</I
> При упаковке/распаковке происходит сбой и вся база (или
> результаты сеанса работы) идет лесом.Да и смысл то какой
> в этом? Место на диске экономищь?

>

Не, не место экономлю, просто иногда всякие типы хотят залезть куда не надо, а если чо-нить поменять в этой базе, то и прога работать не будет. Вернее будет, но криво. А если запаковать, то вероятность того, что её испортят уменьшается (наверное)


 
Сергей М. ©   (2007-08-29 10:31) [8]


> Человек   (29.08.07 10:27) [7]


> типы хотят залезть куда не надо


Ну и зачем "паковать" базу ?

Просто шифруй записываемые в нее данные, а при чтении расшифровывай.


 
Sergey13 ©   (2007-08-29 10:33) [9]

> [7] Человек   (29.08.07 10:27)

Если заниматься безопасностью и разграничением прав доступа, то не стоит брать настольную СУБД в качестве основного звена системы.
Юзер просто сотрет твой файл и все ваапще перестанет фунциклировать.


 
sniknik ©   (2007-08-29 10:43) [10]

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


 
Сергей М. ©   (2007-08-29 10:48) [11]


> "типы" это админ и служба техподдержки, пытаются выяснить
> "а чего это программа не работает?".


Почему не работает ? Работает).. Кто, спрашивается, за нее выполнит шифрацию/дешифрацию ? Никто)


 
Человек   (2007-08-29 10:53) [12]

Тогда поменяю вопрос, как зашифровать базу?


 
Вася Правильный   (2007-08-29 10:54) [13]


> alshtam ©   (29.08.07 10:00) [1]

запаковать файл и упаковать таблицу БД - это как теплое и кислое, разных категорий сущности


 
Евгений Р.   (2007-08-29 10:55) [14]

Можно такую БД держать на флешке.  А то и программу.


 
Человек   (2007-08-29 10:59) [15]


> Евгений Р.   (29.08.07 10:55) [14]
> Можно такую БД держать на флешке.  А то и программу.


Нафига?


 
Anatoly Podgoretsky ©   (2007-08-29 11:06) [16]

Надо переходить на другую базу, например Absolute DB
Там все есть и полностью embeded


 
Sergey13 ©   (2007-08-29 11:07) [17]

> [12] Человек   (29.08.07 10:53)

А ты уверен, что твоя БД стоит того? Я тебе повторяю - ты ее зашифруешь, а юзер ее в сердцах просто сотрет. 8-)


 
Anatoly Podgoretsky ©   (2007-08-29 11:13) [18]


> А если запаковать, то вероятность того, что её испортят
> уменьшается (наверное)

Увеличивается


 
Человек   (2007-08-29 11:52) [19]


> Sergey13 ©   (29.08.07 11:07) [17]
> > [12] Человек   (29.08.07 10:53)А ты уверен, что твоя БД
> стоит того? Я тебе повторяю - ты ее зашифруешь, а юзер ее
> в сердцах просто сотрет. 8-)


Не, если он сотрёт, то это его проблему. Но всё же бывают ламы, которые лазют везде и всюду, открывают, меняют что-то, а чо они делают даже сами не понимают. Главное чтобы юзер не мог так просто открыть базу. Тогда он её и трогать не станет.


 
Сергей М. ©   (2007-08-29 12:00) [20]


> Главное чтобы юзер не мог так просто открыть базу


Ну так просто поставь базу на пароль доступа, благо MDB дает такую возможность, и всех делов)

Пароль будет знать только твоя программа, штатными средствами MS Access без знания этого пароля доступ к базе будет запрещен.

Простому юзеру/ламеру ты тем самым дашь по рукам, ну а от "продвинутых" ты свою базу при любом раскладе вряд ли спасешь)


 
homm ©   (2007-08-29 12:02) [21]

> Не, не место экономлю,
Тогда не зажать а зашифровать.


> а если чо-нить поменять в этой базе, то и прога работать не будет.
А что, это разве не проблема тех типов? Не буут менять — будет работать.


> А если запаковать, то вероятность того, что её испортят уменьшается (наверное)
Сомнительно весьма.



Страницы: 1 вся ветка

Текущий архив: 2007.09.23;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.024 c
2-1188548482
Sonia
2007-08-31 12:21
2007.09.23
RadioGroup


15-1187846202
Ega23
2007-08-23 09:16
2007.09.23
Для тех, кто в курсе


2-1188227789
неискушенный
2007-08-27 19:16
2007.09.23
что это за объект - TAtom?


2-1188216211
Первокласник Вася
2007-08-27 16:03
2007.09.23
Копирование файлов


2-1188292095
autokont
2007-08-28 13:08
2007.09.23
TTreeView подпункт