Member
Статус: Не в сети Регистрация: 26.05.2004 Откуда: Kharkov.UA
Aleksoid1978 писал(а):
Подскажите возможно такое сделать или нет - Есть база(таблица), в ней данные храняться в зашифрованном виде, есть функции шифровки и расшифровки; так можно-ли при отображении данных в DBGrid чтобы они(данные) показывались в уже расшифрованном виде, а при изменении заносились в базу зашифрованными. Т.е. как-то перехватить процесс чтения данных из базы при показе и процесс записи в базу при изменении.
Так это, вместо TZTable юзай TZQuery для выборки, а там уже в сам запрос вставь DECODE(field_name) или чем ты там декриптаешь.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Простым селктом не получится. У тебя две записи в одну выкладываются. Обьясни что именно ты хочеш сделать и по конкретнее. Может есть более элегентный способ.
Добавлено спустя 2 минуты, 58 секунд: Aleksoid1978
Aleksoid1978 писал(а):
у меня как раз первый случай - своя база в зашифрованном виде, а показывать надо в расшифрованном. Я конечно сделал показ данных через обычный Grid, но хотелось-бы делать через DBGrid - так удобнее.
У каждого поля есть OnGetValue, там и обрабатывай. Будет конечно тормозить, но что делать
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Цитата:
Получается треться колонка это второй раз stid?
Да, так оно и есть.
Что хочу сделать - в первой колонке trid, во второй первый stid для текущего trid, и в третьей последний stid для текущего trid. Простой селект написать не смог, вложеные тоже ничего хорошего не выбрали Думаю получиться ли вообще так сделать с такой структурой таблицы.
Что хочу сделать - в первой колонке trid, во второй первый stid для текущего trid, и в третьей последний stid для текущего trid. Простой селект написать не смог
А "самому пробежать" по всей таблице и сделать выборку по условию?
Это конечно без особых проблем, но потом надо будет использовать CrystalReport для создания отчетов и такие приколы там не пройдут
Но ты ведь, наверное, выбранные значения будешь группировать отдельно?
Сделай выборку во временную таблицу и предложи ее для отчета.
Хотя конечно подобная выборка или хранение данных (как посмотреть) – изврат.
Member
Статус: Не в сети Регистрация: 02.03.2005 Откуда: Владивосток
Ray Adams писал(а):
Aleksoid1978
Aleksoid1978 писал(а):
у меня как раз первый случай - своя база в зашифрованном виде, а показывать надо в расшифрованном. Я конечно сделал показ данных через обычный Grid, но хотелось-бы делать через DBGrid - так удобнее.
У каждого поля есть OnGetValue, там и обрабатывай. Будет конечно тормозить, но что делать :)
Списибо за подсказку, вот только не OnGetValue а OnSetText и OnGetText
Добавлено спустя 3 минуты, 26 секунд:
Skyggedans писал(а):
Aleksoid1978 писал(а):
А ты, кстати, не знаеш почему они под 5-ой версией не хотят компилиться.Версия Delphi - 5 build 5.62 Enterprise
Да, у меня такая же делфя и такая же трабла, пока не разобрался. Возьми 6.5.0, они станут точно.
А я забил и поставил Delphi 7 - все прекрасно заработало.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
_SGK Работа через промежуточную таблицу - это конечно вариант, но кривой какой-то Проще изменить структуру таблицы,но если так сделать, то таблица усложниться в пару раз.
Вообщем таблица представляет собой обозначение маршрута следования поездов:
trid - номер поезда
stid - id станции
stord - порядок следования поезда(от 0 по возрастающей, последняя станция имеет stord = 200)
arrivaltm - время прибытие на станцию
departm - время отправления со станции
daymod - интервал в днях со дня отправления до прибытия на текущую станцию. Допустим если поезд выехал из начального пункта вчера, а прибывает сегодня, то daymod = 1
Такая вот структура, как изменить ума не приложу, потому как с БД работаю всего неделю
Member
Статус: Не в сети Регистрация: 14.08.2004 Откуда: Москва
Приветствую...
Помогите пожалуйста разобраться с ListBox-ами.. Создаю... ListBox1: TListBox... bla bla bla.. procedure FormCreate(Sender: TObject);
Затем уже в implementation пишу(как по учебнику):
Код:
procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.itemindex:=0; end;
Описание содержания писал в String List Editor... Запускаю - ругается на строчку:
Код:
procedure TForm1.FormCreate(Sender: TObject);
Что то типа ожидалось ';' а встретилось '.' Долго извращался в итоге убрал 'TForm1', оставил:
Код:
procedure FormCreate(Sender: TObject);
Тогда ругается на строчку:
Код:
ListBox1.itemindex:=0;
Говорит, что то типа не определён ListBox1...
Что я делаю не так??? Или покажите пожалста пример использования списка.. буду очень благодарен...
Такая вот структура, как изменить ума не приложу, потому как с БД работаю всего неделю
Эта таблица это только часть реляционной БД?
Что-либо определенное посоветовать сложно, так как для выбора оптимального решения по хранению данных нужно точно определиться с тем, какие запросы по выборке будут.
Имхо правильнее сначала определиться с запросами - шо и как ты хочешь иметь .
Member
Статус: Не в сети Регистрация: 14.08.2004 Откуда: Москва
Lord_of_Darkness
Lord_of_Darkness писал(а):
Походу у тебя где-то ";" нехватает. Смотри повыше злосчастной процедуры. Если не разберешся - постани весь юнит, бум разбираться вместе
Не может такого быть - сам ничего не писал... Моё рукописное творчество начинается с этой процедуры... Странно... ладно.. завтра попробую ещё раз, если не получится - запостю(или запощу?) весь юнит...
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Aleksoid1978 писал(а):
Списибо за подсказку, вот только не OnGetValue а OnSetText и OnGetText
Точно, оБшибся малость
Daemon писал(а):
Работа через промежуточную таблицу - это конечно вариант, но кривой какой-то
На SQL серверах так делается 80% всех отчетов.
_SGK писал(а):
Эта таблица это только часть реляционной БД? Что-либо определенное посоветовать сложно, так как для выбора оптимального решения по хранению данных нужно точно определиться с тем, какие запросы по выборке будут. Имхо правильнее сначала определиться с запросами - шо и как ты хочешь иметь
Полностью согласен. Сперва надо решить как с данными будет вестись работа , а потом от этого и плясать. Чтобы потом не ломать голову над такими вот запросами
Daemon писал(а):
Да это самый сложный запрос, все остальное намного проще.
В том то и дело, что даже на хорошем SQL сервере такое врядли одним запросом сделаеш. Надо юзать stored procedure с применением временных таблиц.
Хотя я сейчас вот думаю и мне кажется что это можно будет сделать , правда на MS SQL. На Interbase, Paradox не получится из-за не такого сильного SQL
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения