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

Вниз

Access, ADO, Delphi и шифрация   Найти похожие ветки 

 
wild_arg ©   (2006-08-05 14:45) [0]

Есть база данных на Access и приложение на Delphi, которое посредством ADO цепляется к данным и выводит некую таблицу. Для предотвращения выуживания данных из базы другими программами или запросами - строковые поля в таблице заксорены (через Xor наложен пароль). В самом Access создал модуль и функцию в нем, которая декодирует данные. Из Access все отлично - пишешь
select XorFunction(Table1.Field1, "password") from Table1
и все выводится. В дельфийском же проекте такой подход не прокатывает. Полазил по нету - пишут, что действительно Jet движок не позволяет такое вытворять. Так что же делать?
Есть ли способ, допустим сначала получить закодированные данные в ADODataSet, а потом их обработать? Или может вообще как-то по-другому кодировать?
Можно, конечно, перекодировать непосредственно при выводе, но тут еще одна проблема - данные необходимо перед выводом отсортировать. Подскажите решение, плз.


 
Dok   (2006-08-05 14:52) [1]


> но тут еще одна проблема - данные необходимо перед выводом
> отсортировать. Подскажите решение, плз.

перекодируй на клиенте и суй это все TClientDataSet - в нем можно локльно сортировать. А зачем выбран Access, если нужна такая защита? Почему нельзя заюзать более нормальные СУБД?


 
wild_arg ©   (2006-08-05 14:58) [2]

выбор бд - не мой :)
а что еще посоветуешь из СУБД? только надо,что-нить легкое. Это все для информационного справочника, который на компакте будет размещаться.
Не скажешь же пользователю, что для просмотра нашего справочника установите у себя MS SQL Server


 
Dok   (2006-08-05 15:03) [3]


> Не скажешь же пользователю, что для просмотра нашего справочника
> установите у себя MS SQL Server

Нормальная ситуация. MSDE - ограниченный MS SQL.
Firebird embedded - ставить не надо, длл идет с прогой. Там можешь через UDF расшифровывать.


 
wild_arg ©   (2006-08-05 15:05) [4]

пасиб, попробую


 
wild_arg ©   (2006-08-05 15:06) [5]

А через серверные компоненты в Delphi не пробовали работать с Access?
Может через них получится?


 
Dok   (2006-08-05 15:10) [6]


> А через серверные компоненты в Delphi не пробовали работать
> с Access?

нет таких по определению. "СУБД" Акцес не серверная.


 
Sam Stone ©   (2006-08-06 16:05) [7]

На настроить пароли на коннект к базе и создать пользователей с разными правами (если надо) не подходит?


 
Anatoly Podgoretsky ©   (2006-08-06 18:38) [8]

wild_arg ©   (05.08.06 14:58) [2]
Почему бы тогда не использовать Absolute Database, полностью соответствует заявленым требования и не требует никаких библиотек. Только ехе и база и все на СД


 
saxon   (2006-08-07 11:26) [9]


> Из Access все отлично - пишешь
> select XorFunction(Table1.Field1, "password") from Table1
>

Почему не написать Query в Access, а потом юзать как ХП, (при этом все будет делаться в Access)?


 
sniknik ©   (2006-08-07 11:44) [10]

> Почему не написать Query в Access, а потом юзать как ХП, (при этом все будет делаться в Access)?
потому, что запрос выполняет не аксесс, а jet. т.е. работать это не будет. (если конечно не через OLE, т.е. сам аксесс поднимать и в нем выполнять, но это уже не ADO)

> Из Access все отлично - пишешь
> select XorFunction(Table1.Field1, "password") from Table1
вот это аксесс выполнит как select Field1 from Table1 а XorFunction его личная будет использовано для форматирования вывода. (можно проверить кому хочется т.к. это теоритически. для проверки создать базу adp с конектом к mssql выполнить подобный запрос с самописной функцией и посмотреть реальный запрос профайлером, что реально выполняется...)

это к тому, что функции форматирования/вывода в дельфе тоже написать отобразить по ним не проблема (надеюсь ;о)) просто они не совмещены с SQL, т.е. дельфи в отличие от ассесса сама синтаксис не разбирает... это все нам оставлено. именно это и называтся программированием... ;о)



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

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

Наверх




Память: 0.49 MB
Время: 0.059 c
2-1158734182
yel
2006-09-20 10:36
2006.10.08
Как узнать открыт или закрыт CD-ROM?


2-1157950790
lobach
2006-09-11 08:59
2006.10.08
List Box


2-1158912710
RomanH
2006-09-22 12:11
2006.10.08
IncludeTrailingBackslash


3-1154501115
spogi
2006-08-02 10:45
2006.10.08
Is not a valid floating point value


2-1158954375
BTR
2006-09-22 23:46
2006.10.08
RICHEDITOM