|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.09.2011, 16:26 | #11 |
Пользователь
Регистрация: 02.06.2011
Сообщений: 31
|
Да - не просто так - они должны создаваться в базе данных - так должно быть !
Поэтому я и обратился за помощью. Как задать имя Столбцу в Базе данных ~.mdb ? |
22.09.2011, 18:42 | #12 |
Форумчанин
Регистрация: 25.07.2009
Сообщений: 533
|
Слушай, а нормально описать задачу и проблему. Можно?
Потому что исходя из того что ты описываешь тебе надо временную таблицу. Хотя временную ли. Ты не говоришь что должно произойти с этими столбцами после работы с ними. Далее. Вполне может статься что ты не в том направлении движешься. Может есть иной вариант решения твоей задачи. Ну а вообще смотри в сторону create table с твоими нумерованными полями. Во всяком случае я бы пошел таким путем. Просто динамически собрал запрос на создание таблички. Создал её и открыл. Но я еще раз говорю, что данное решение какое-то сложное. И может просто не достаточно проработанное. Скорее всего есть иные варианты решения. Так что прошу нормально описать задачу.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA) |
22.09.2011, 18:58 | #13 |
Пользователь
Регистрация: 02.06.2011
Сообщений: 31
|
Есть 2 поля Edit1 и Edit2 (интервал допустим со значениями [1,3]), далее должно создаваться нечто следующее в самой базе данных(чтобы не писать ручками):
интервал 1-3.bmp БД вполне существующая и рабочая, а столбцы сами создавались чтобы ручками не вбивать их названия, просто их может быть до 150 штук и они после того как создадутся будут заполнены значениями. Используемые компоненты: DataSourse, AdoTable, AdoConnector, StringGrid для вывода БД с нашими столбцами (компоненты сообщаются между собой и их active:=True). Заранее Благодарен всем участникам и извините если создал проблемы кому то. С Уважением, Алексей. Последний раз редактировалось Apostol13; 22.09.2011 в 19:02. |
22.09.2011, 19:31 | #14 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
rdama +1
Apostol13 1) не понимаю "бизнес-логику" добавления столбцов в рабочем режиме! Но я уверен, что это или плохо продуманная структура БД (в 98% случаев) или (1% случаев) задача не попадает в рамки реляционных БД. 2) Почему нельзя добавить необходимые столбцы заранее, на этапе проектирования ПО ? 3) добавлять столбцы во время работы программы, имхо, можно. Но делать это нужно совсем не так, как это пытаетесь делать Вы. |
22.09.2011, 19:31 | #15 |
Форумчанин
Регистрация: 25.07.2009
Сообщений: 533
|
Как я понимаю у тебя часть таблицы уже есть.
Или таблица пересоздается с изнова при каждом запуске программы? Тогда тебе нужна модификация таблицы. В кратце что то подобное Код:
Первые поля (Стойки, Всего) они постоянны? И значения в них тоже постоянны? Тогда может пойти по другому пути. Пусть первые поля станут неким справочником. А твои расчетные данные станут просто записями в другой таблице. Не столбцами, а записями. Но для этого надо понять, что же ты пишешь. Что возникла необходимость в 150+ полях. Я думаю надо пересмотреть структуру БД.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA) |
22.09.2011, 20:56 | #16 | |
Форумчанин
Регистрация: 04.10.2007
Сообщений: 106
|
Похоже у вас база с "динамической" структурой. Лучшее что приходит в голову как уже говорилось :
Цитата:
1. IDFIELDNAMES 2. NAMEofVirtualField и другая : 1. IDFIELDVALUES 2. VirtualFIELDID 3. FIELDVALUE после объединяющего запроса из обоих таблиц будет получено что-то вроде: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ IDFIELDVALUES | VirtualFIELDID | NAMEofVirtualField | FIELDVALUE | 1 | 32 | 1-1 | зеленые | 2 | 12 | 2-2 | круглые | 3 | 28 | 3-3 | L2кэш-1мб | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ т.е. в такую таблицу, вернее в две можно напихать всякой разной инфы, правда будут проблемы с хранением различных типов данных. Кроме того определенные сложности с отображением, т.к. надо транспонировать. Хотя раз уже используется StringGrid - то это можно сделать. Кстати вообще за каким ... использован StringGrid ??? Шоб жизнь сахером не казалась??? Да и еще один вариант - чисто косметический, если уже всё работает и данные забиваются: переименовать визуальную сторону - т.е. DisplayLabel, все равно при используемой "динамической" структуре идет обращение по индексу/номеру поля, т.е. коду всё равно а глазу пользователя приятно. Вообще странно всё это. Чтоб не было такой ..., и неправильных вопросов, неправильных баз, неправильных пчел и далее по списку, надо читать книги, например есть "Проектирование БД в Дельфи" Гофман и Хомоненко, пару лет моя настольная/накроватная/околоунитазная книга.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем |
|
22.09.2011, 21:34 | #17 |
Форумчанин
Регистрация: 25.07.2009
Сообщений: 533
|
Ну вот, пока я ужинал, меня опередили с предложением варианта хранения.
Ну да ладно. Я тоже самое хотел предложить. Но я думаю что в данном случае для полноценного хранения данных надо рассматривать некий идентификатор т.е. 3 параметр. Ну это только если в программе предполагается хранить весь этот набор параметров. Которых аж 150+. Т.к. иначе не возможно будет идентифицировать от какого расчета у нас те или иные значения. Но опять же в данном случае это гадание на кофейной гуще. Описание задачи крайне необходимо. Ну и мы тут все можем по очереди посмотреть структуру и подсказать, что поправить, а как не делать. Но путь с динамическим созданием полей заведомо не верный. Т.к. если есть объект то у него должно быть фиксированное количество свойств. А иначе получается что это нечто крайне абстрактное с неограниченным количеством свойств. И для этого не обязательно читать книгу по проектированию БД в Delphi. На самом деле ужас, а не название. Т.к. в Delphi БД не проектируется, а на существующую БД рисуется оболочка. Так сказать система управления БД. А для того чтоб таких вопросов не было. Надо взять любой учебник по ООП. И прочитать первые несколько страниц чтоб понять что такое объекты и как их надо выделять и разделять. И заодно прочитать книгу по теории реляционных БД. Ну и задавать вопросы.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA) |
23.09.2011, 07:05 | #18 |
Пользователь
Регистрация: 02.06.2011
Сообщений: 31
|
Смысл существования БД такой:
Существуют различные[монтажные] стойки (К1153, К1152 и т.д.). И существуют отрезки "1 - 1", "2 - 2" и т.д. Где они размещаются, т.е которые я хотел пихать в столбцы. Ныне поменял столбцы и строки местами чтобы в запись добавлялся отрезок допустим "1 - 1" (и в нем будет какое то количество всех различные стоек, полок, крепежей и т.д.) а за ним и все остальные по мере надобности. - дело весьма упростилось. Но нельзя присвоить имена столбцов ячейкам = ( Код:
Ошибка.jpg Последний раз редактировалось Apostol13; 23.09.2011 в 08:05. |
23.09.2011, 10:13 | #19 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
вот именно это Вам две страницы и пытались втолковать! Цитата:
Код:
p.s. совет. Для отображения данных много лучше использовать DBWare компоненты. Например, DBGrid (а ещё можно воспользоваться продвинутым компонентом Ehlib и взять оттуда TDBGridEh ). |
||
23.09.2011, 15:42 | #20 |
Пользователь
Регистрация: 02.06.2011
Сообщений: 31
|
В общем и там у меня выскакивала ошибка все та же.
Но вот что меня беспокоит больше: 1) Как сделать в DBGrid аналог StringGrid`а - с "FixedRows" и "FixedCol" ? 2) Как Сделать так, чтобы нельзя было редактировать \ Удалить первую строку в DBGrid? Пока для Удаления использую: Код:
Последний раз редактировалось Apostol13; 24.09.2011 в 12:59. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не копируется MDB файл через CopyFile | artemavd | Общие вопросы Delphi | 4 | 02.12.2010 08:44 |
Обращение к элементам массива через указатель | Miha85193 | Общие вопросы Delphi | 21 | 19.07.2010 18:43 |
Обращение к переменной через другую переменную | tae1980 | Microsoft Office Excel | 2 | 22.03.2010 00:52 |
Обращение через TComponent | Marsel737 | Общие вопросы Delphi | 6 | 08.12.2009 21:54 |
Обращение к элементам массива через указатель в С++ | серг | Помощь студентам | 1 | 24.11.2009 01:30 |