Текущий архив: 2004.06.13;
Скачать: CL | DM;
ВнизКак работает Field Editor? Найти похожие ветки
← →
DmitryNekl (2004-05-20 12:53) [0]Хочу создать подобие Field Editor, чтобы работал в run-time (для настройки приложения, чтобы при изменении структуры базы не нужно было перекомпилировать).
Глобальный вопрос: как это сделать? Может, кто уже делал?
Вопрос более конкретный: Как в Field Editore организованы загрузка и удаление полей? Мне кажется, что используется (на примере Query) Query.Fields... но как он удаляет? Какой метод используется? У меня не получилось ни с remove, ни с clear...
Буду благодарен как за ответы на вопросы, так и за ссылки по теме.
← →
Vlad © (2004-05-20 12:59) [1]
> DmitryNekl (20.05.04 12:53)
Для этого посылается запрос к базе, DataSet получает новый набор полей.
Подробнее см. TFieldDefs.Update, можешь посмотреть реализацию в VCL
← →
Соловьев © (2004-05-20 13:20) [2]
> для настройки приложения, чтобы при изменении структуры
> базы не нужно было перекомпилировать
СУБД? если клиент-сервер - VIEW читать до потери сознания
универсальный способ - 3-х звенная архитектура
← →
DmitryNekl (2004-05-20 14:00) [3]СУБД - MySQL в инете. Представления отсутствуют :(
Спасибо большое за ответы. Будут еще мысли - пишите! :)
← →
DmitryNekl (2004-05-20 14:18) [4]2 Vlad.
"Свойство FieldDefs (имеющее тип TFieldDefs) для существующей таблицы содержит информацию обо всех полях таблицы. Эта информация доступна только в режиме выполнения и хранится в виде массива экземпляров класса TFieldDef, хранящих данные о физических полях таблицы (т.о. вычисляемые на уровне клиента поля не имеют своего объекта TFieldDef)."
Поскольку в редакторе полей можно создавать и вычисляемые поля, и lookup-ные поля - там используется не TFieldDefs... :(
Есть ли какие еще варианты?
← →
Курдль © (2004-05-20 14:21) [5]
> универсальный способ - 3-х звенная архитектура
Это не универсальный метод, а тупиковый. Не вижу для него никакого практического применения, кроме изоляции БД от ВЭБ.
> для настройки приложения, чтобы при изменении структуры
> базы не нужно было перекомпилировать
Не могу себе представить приложение, нормально работающее после изменения структуры базы. Это как понимать? Если у меня на форме редактирования были поля "Ф","И","О" и лэйблы к ним соответствующие, то они, откуда ни возьмись (без перекомпиляции), перетекут в поля "Страна", "Город", "Улица", "Дом", "Квартира" и "Телефон"?
← →
Vlad © (2004-05-20 14:27) [6]
> Курдль © (20.05.04 14:21) [5]
> Это не универсальный метод, а тупиковый. Не вижу для него
> никакого практического применения, кроме изоляции БД от
> ВЭБ.
Не стоит так категорично выражать свои мнения. Трехзвенка тут хоть и не совсем к месту, но у нее гораздо больше плюсов чем ты думаешь.
> DmitryNekl (20.05.04 14:18) [4]
Ничего не понял. Зачем тебе лукап-поля, если у тебя только поменялась структура базы ? Какова вобще цель твоей задачи ?
← →
DmitryNekl (2004-05-20 14:39) [7]2 Курдль.
При работе программы я хочу на (изначально пустую) форму редактирования помещать динамически создаваемые элементы типа BDEdit и т.д.
← →
Соловьев © (2004-05-20 14:45) [8]
> [6] Vlad © (20.05.04 14:27)
> [5] Курдль © (20.05.04 14:21)
Как раз 3-х звенная архитектура не зависит не только от стурктуры БД но и от самой СУБД. Как раз то что нужно автору , у которого меняется структура БД.
← →
DmitryNekl (2004-05-20 14:48) [9]2 Vlad.
Цель - делаю систему управления сайтом. Периодически вношу изменения в структуру базы, и приходится в куче мест переделывать настройки руками. Задолбало. Хочу, чтобы все окна редактирования, TFields и т.д. создавались/настраивались автоматом. Т.е.: допустим, добавилось в таблицу (MySQL) новое поле, или изменился тип предыдущего. Автоматически создаются TFields, если нужно - настраиваю свойства DisplayLabel, DisplayWidth, Visible - и все сразу без ручной работы отображается как надо.
Lookup-ные и вычисляемые поля - как для сохранения общности, так и для удобства работы с окнами редактирования.
← →
Курдль © (2004-05-20 14:55) [10]
> Задолбало.
Это не повод калечить приложение "настраиваемыми без компиляции окнами редактирования".
Зато это хороший метод для смены профессии!
← →
DmitryNekl (2004-05-20 15:00) [11]2 Курдль.
Спасибо за конструктивный ответ :). Кстати, я не профессиональный программист, а любитель, пишу прогу не для кого-то, а для себя.
Тем не менее, я, как и все талантливые люди, ленив - и потому хочу эту занудную работу автоматизировать. Это плохо?
И почему приложение будет искалечено? С дизайном могут быть некоторые трудности... но все решаемо! Завести файл с настройками, один раз визуально после изменения структуры расставить все компоненты и запомнить координаты в этом файле... Может, я чего принципиального не вижу?
← →
Курдль © (2004-05-20 15:15) [12]
> Завести файл с настройками, один раз визуально после изменения
> структуры расставить все компоненты и запомнить координаты
> в этом файле... Может, я чего принципиального не вижу?
Ага! :) Этот файл назывется ".DFM"
← →
Vlad © (2004-05-20 15:18) [13]
> DmitryNekl (20.05.04 14:48) [9]
> 2 Vlad.
>
> Цель - делаю систему управления сайтом. Периодически вношу
> изменения в структуру базы
Такой подход, ИМХО, не есть гуд. Сам себе задачу усложняешь.
Базу для начала проектируют как следует, а потом уже занимаются разработкой клиента. Тогда не будет возникать таких проблем как у тебя. А ты хочешь сделать чуть ли не интеллектуальную систему, знаешь сколько ты на это времени потратишь ? И самое главное овчинка будет ли стоить выделки ?
Совет: забей пока не поздно.
Страницы: 1 вся ветка
Текущий архив: 2004.06.13;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.043 c