Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577

Реализация сортировки в зашифрованной базе данных

15.03.2016, 16:30. Показов 1346. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Прошу дать совет по реализации задачи.

Имеется зашифрованная БД. За расшифровку данных в BDGrid'е отвечают следующие события:
C++
1
2
void __fastcall TForm2::ADOQuery1name1GetText(TField *Sender, UnicodeString &Text, bool DisplayText)
void __fastcall TForm2::ADOQuery1name1SetText(TField *Sender, const UnicodeString Text)
Для сортировки, использую следующий код:
C++
1
ADOQuery1->Sort="name1";
Но он как-то коряво отображает:
АБ
АВ
ВР
БА

Как мне реализовать сортировку?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.03.2016, 16:30
Ответы с готовыми решениями:

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

Дописать функцию сортировки по алфавиту в базе данных
Есть программа база данных. я ее уже расписал. все кроме одной функции sort . в этой функции должна происходить сортировка переменных...

Реализация иерархии классов в базе данных?
Понимаю, что любая база данных очень плохо подходит для ООП. Но все же, какие на практике есть способы реализации иерархии классов в базе...

20
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.03.2016, 17:19
Цитата Сообщение от Within_t Посмотреть сообщение
Для сортировки, использую следующий код:
C++
1
ADOQuery1->Sort="name1 ASC";
1
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
15.03.2016, 18:26  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
ADOQuery1->Sort="name1 ASC";
Не помогло(
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
15.03.2016, 19:05
You cannot use OnGetText to compute the value and expect sorting to work. When you sort you are sorting the values that are actually stored in the CDS, not the values that are shown on the screen as the result of the OnGetText event
Так что не пойдет тут просто Sort-ом пользоваться.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.03.2016, 23:06
Здесь походу надо запросом сортировать

Добавлено через 25 секунд
volvo, верно я говорю?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
15.03.2016, 23:11
А как запросом дешифровать значения поля? Пока непонятно, как такое провернуть вообще.
1
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
16.03.2016, 04:00
Цитата Сообщение от volvo Посмотреть сообщение
запросом дешифровать значения поля
если дешифровать через запрос, то зачем тогда данные шифровать.
Как вариант: на клиенте в ADOQuery сделать CalculatedField для дешифрованного значения. Через, какой-нибудь, ClientDataSet подсоединиться к ADOQuery и уже сортировать в нем.
Должно сработать.
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
17.03.2016, 10:43  [ТС]
Создал вычисляемое поле, поместил в него расшифрованное значение. А вот как провернуть сортировку, понять не могу.
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
17.03.2016, 10:57
Цитата Сообщение от Within_t Посмотреть сообщение
А вот как провернуть сортировку, понять не могу.
Цитата Сообщение от Bit_Man Посмотреть сообщение
Через, какой-нибудь, ClientDataSet подсоединиться к ADOQuery и уже сортировать в нем.
Это сделал?
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
17.03.2016, 12:37  [ТС]
Не знаю как с ним работать, в инете ни чего стоящего не нашёл)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
17.03.2016, 15:13
Все очень просто. Кому понадобится - все с самого начала, с создания вычислимого поля:

1) создаем в своей ADOQuery вычислимое поле: в инспекторе обхектов ADOQuery1 - Fields - New field, там выставляешь имя поля, тип данных, все остальное, и Field type = Calculated
2) в OnCalcFields для AdoQuery:
C++
1
2
3
4
void __fastcall TForm1::ADOQuery1CalcFields(TDataSet *DataSet)
{
    ADOQuery1NameSort->AsString = Decrypt(ADOQuery1name1->AsString); // NameSort - имя вычислимого поля, name1 - шифрованное поле
}
3) на форму кидаем TClientDataset + TDatasetProvider. Провайдер связываем с ADOQuery, в ClientDataset->ProviderName выставляем этот самый провайдер. DataSource, с которым связан грид, тоже прилепляем к ClientDataset-у.

Всё, теперь для того, чтобы отсортировать по полю NameSort, где хранится расшифрованная информация, достаточно:
C++
1
    ClientDataSet1->IndexFieldNames = "NameSort";
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
17.03.2016, 19:59  [ТС]
Не работает(

Попытался активировать ClientDataSet, вылетает ошибка:
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
17.03.2016, 20:05
Если б не работало - я бы не писал:
до сортировки


после
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
18.03.2016, 04:46  [ТС]
Даже когда смотришь ClientDataSet1->IndexFieldNames, там все пусто(
*в mastersource добавил datasource
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
18.03.2016, 05:33
Цитата Сообщение от Within_t Посмотреть сообщение
*в mastersource добавил datasource
Причем здесь MasterSource и DataSource!
Связка:
C++
1
2
ClientDataSet1->ProviderName = DataSetProvider1;
DataSetProvider1->DataSet = ADOQuery1;
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
18.03.2016, 15:13  [ТС]
ни чего не получается
Новая.rar
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
18.03.2016, 17:02
Твой проект открыть не могу, ибо не держу новых оффисов (только mdb, никаких accdb), вот с mdb, все прекрасно работает:
Вложения
Тип файла: 7z crypted_db.7z (145.4 Кб, 9 просмотров)
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
18.03.2016, 17:35  [ТС]
Ваш проект тоже не запускается, а приложение требует логин и пароль.
Вот наделал скринов
Новая папка (2).rar
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
18.03.2016, 22:24
Цитата Сообщение от Within_t Посмотреть сообщение
а приложение требует логин и пароль.
Нет там никакого логина и никакого пароля. Просто нажать на Ok достаточно. В общем, от темы отписываюсь, интерес потерян...
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
19.03.2016, 05:34  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Нет там никакого логина и никакого пароля. Просто нажать на Ok достаточно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2016, 05:34
Помогаю со студенческими работами здесь

Реализация системы поиска по базе данных
Добрый день. Прошу помощи по реализации системы поиска по базе данных. Имеется таблица базы данных и форма ввода информации. ...

Реализация продажи в базе данных товаров
Всем привет, подскажите как сделать так чтобы из таблицы Товары при нажатии клавиши покупка из 1 datagrid на форме заносились данные в...

Реализация тригера в базе данных SQL
Есть проект c# с базой данных посещений занятий, не получается реализовать тригер, который автоматически будет добавлять строку в таблицу...

Реализация алгоритма сортировки для любых типов данных
Помогите пожалуйста переделать реализацию сортировки так, чтобы она могла работать с любыми типами данных(int, double, etc) Т.е. могла...

Работа с табличными базами данных. Реализация функции сортировки.
Вот код моей программы. Необходимо реализовать функцию сортировки данных!!! //project.cpp - Lab. #8 #define lname 80 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru