Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
Человек   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.043 c
15-1187867268
oldman
2007-08-23 15:07
2007.09.23
ННМП-2007


2-1188290138
Include
2007-08-28 12:35
2007.09.23
Indy компоненты, ключи


2-1188084451
foreverDelphi
2007-08-26 03:27
2007.09.23
не запустить вторую копию программы


15-1187945267
Nic (from server)
2007-08-24 12:47
2007.09.23
Ещё одна проблема с web-сервером


1-1184345126
Farel
2007-07-13 20:45
2007.09.23
Print





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский