Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2010, 17:37   #21
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Не люблю его . Но, если не получается сделать программно так, то придется делать через геморрой.
ну как все сделаешь - вот тут почитаешь
http://www.delphiplus.org/articles/i...y/1/index.html
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 24.07.2010, 17:52   #22
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Korben5E Посмотреть сообщение
угу IBExpert и 50 клиентов в разных регионах страны...
Какие 50 клиентов? Не видел ничего про многопользовательскую работу.
Цитата:
Сообщение от Korben5E Посмотреть сообщение
добавление колонок как правило используется если человек не умеет разворачивать таблицу.
Расскажите это разработчику IBExpert'a. Зачем его программа колонки в таблицы добавляет? Совершенно неправильный подход. Выбор реализации зависит от задачи.

Так вот. Уважаемый ТС, Ваша задача: в БД имеются записи о людях. Для всех этих людей должно храниться числовое значение на определенную дату? У Иванова на 01.01.2010 1000, а у Петрова на ту же дату 300. Я угадал? Вариантов реализации без изменения структуры таблицы куча, в зависимости от цели хранения этих данных.
Одно из решений:
добавить таблицу вида
Цитата:
ИД_Человека (PK)
Дата (PK)
Значение
Но тут некоторые запросы уже не получатся, другие в разы сложнее будут,... смотрите исходя из задачи.
pu4koff вне форума Ответить с цитированием
Старый 24.07.2010, 18:56   #23
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Мне это нужно для того, чтобы пользователь программно мог добавлять колонки. А именно. Есть таблица например:
ФИО 01.01.2010 02.01.2010
Иванов И.И. 1000 500
Петров П.П. 300 400

Нужно, чтобы пользователь мог указать через DateTimePicker1 дату, которая будет являться названием для колонки и новый столбец должен добавиться, чтобы также пользователь мог проставлять (вносить в БД) значения.
Уууу как всё запущено...
Пользователь вообще не должен иметь доступа к метаданным...
База должна быть спроектирована так, чтобы в процессе работы она претерпевала минимум изменений, причем эти изменения делают не пользователи а разработчик системы с целью расширения функционала.
Не пытайтесь впихать всё в одну таблицу, сделайте 2, как рекомендует pu4koff и поччитайте то что вам посоветывал Korben5E, по вышеуказанной ссылке...
Одна таблица - содержит данные с ФИО, вторая - кросс таблица - содержит Дата, значение (01.01.2010, 1000 и т.д.). В отчете всё объединяется в длинную портянку, в том виде как вы указали...
В вашем случае:
Каждая таблица в FireBird может испытывать максимум 256 изменений, потом BackUp и Restore базы. Пользователи исчерпают этот ресурс быстро и в самый неподходящий момент вся ваша конструкция перестанет фунциклировать. Если пользователей много, они наверняка будут пытаться добавить уже существующие колонки, которые добавил другой пользователь. Эта конструкция не куда не годится, читайте литературу по принципам построения баз данных...

Последний раз редактировалось Rik; 24.07.2010 в 19:03.
Rik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое добавление колонок BDGrideh Pypkin30159 БД в Delphi 9 28.06.2010 02:02
Модули и как с ними бороться rlevv Общие вопросы Delphi 1 10.05.2010 21:22
Создание файлов и работа с ними... Olka... Общие вопросы C/C++ 12 02.04.2010 23:30
добавление записи firebird alex_-87 БД в Delphi 1 03.01.2010 16:45