Прочие БД - Строка БД (таблицы) - ссылка
-
Student00
Прочие БД - Строка БД (таблицы) - ссылка
Есть БД на делфи
Компоненты:
ADOConnection1 - цепанули к БД Accsess
ADOTable1 - Активировали таблицу
ADOQuery1 - сделали запрос к полю naimen, нашей таблицы
DataSource1 - все подконнектили.
Кроче при запуске программы все выводит в DBGridEh1 правильно.
Но возникла необходимость сделать следующее:
Алгоритм:
1) Выделяешь (или как еще можно реализовать это?) некоторую строку(ячейку) из таблицы (DBGridEh1).
2) Жмешь кнопку "Перейти".
3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!
Т.е. проблема в том: Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?
Чтобы срабатывала команда типа form2.show;
Ребята, подскажите пожалуйста.
Компоненты:
ADOConnection1 - цепанули к БД Accsess
ADOTable1 - Активировали таблицу
ADOQuery1 - сделали запрос к полю naimen, нашей таблицы
DataSource1 - все подконнектили.
Кроче при запуске программы все выводит в DBGridEh1 правильно.
Но возникла необходимость сделать следующее:
Алгоритм:
1) Выделяешь (или как еще можно реализовать это?) некоторую строку(ячейку) из таблицы (DBGridEh1).
2) Жмешь кнопку "Перейти".
3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!
Т.е. проблема в том: Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?
Чтобы срабатывала команда типа form2.show;
Ребята, подскажите пожалуйста.
-
BlackEric
Re: Прочие БД - Строка БД (таблицы) - ссылка
Вамнужно просто показать пустую форму? Подробнее распишите, что должно быть в результате перехода.
-
Student00
Re: Прочие БД - Строка БД (таблицы) - ссылка
Сделал. Теперь есть нормальная связь между компонентами DBLookupComboBox1 и DBLookupListBox1.
В компоненте DBLookupListBox1 выводиться список. В перспективе д/б так. Пользователь выбирает строку (вопрос), т.е. совершает событие onClick
Согласно выделенному вопросу подгружаются варианты ответов (DBRadioGroup1).
Но проблема возникла на первом этапе - компонент DBLookupListBox1 выделяет сразу все строки (все вопросы).
Как сделать так, что бы выделялась каждая строка я незнаю. Ребят, подскажите плз!
ПС.
БД будет не большая (учебная), DBLookupComboBox1 уже настроил подключил (да и легче его настроить) так что пусть будет он.
В компоненте DBLookupListBox1 выводиться список. В перспективе д/б так. Пользователь выбирает строку (вопрос), т.е. совершает событие onClick
Согласно выделенному вопросу подгружаются варианты ответов (DBRadioGroup1).
Но проблема возникла на первом этапе - компонент DBLookupListBox1 выделяет сразу все строки (все вопросы).
Как сделать так, что бы выделялась каждая строка я незнаю. Ребят, подскажите плз!
ПС.
БД будет не большая (учебная), DBLookupComboBox1 уже настроил подключил (да и легче его настроить) так что пусть будет он.
-
Student00
Re: Прочие БД - Строка БД (таблицы) - ссылка
Цитата Student00:
Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?
Это невыполнимое требование с точки зрения реляционной алгебры.
Работать вы должны с атомарным значением, т. е. с "пересечением" определенной строки и столбца.
Т. е. вы должны веделить отдельный столбец который будет хранить значения, представляющее собой ссылку (ForignKey)
на строку в отдельной таблице.
В просетйшем случае та таблица будет содержать всего два столбца:
- Первичный ключ.
- Значение.
Как вы "оформите значение" - это уже Ваше дело.
Хотите это будет просто имя формы, хотите ссылка на внешнюю процедуру, хотите BLOB-объект.
Вобще, мой совет, уделите свое время прочтению книги по реляционной математике. Если нет времени на прочтение талмуда типа "Введение в реляционные базы данных", то прочтите какую либо книжку по MS SQL. ваша беда что вы начинаете оперировать в терминах среды програмирования, а это не правильно. Сначала проектируется ЧТО и КАК нужно сделать, а ЧЕМ это дело десятое
Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?
Прочие БД - Строка БД (таблицы) - ссылка
Это невыполнимое требование с точки зрения реляционной алгебры.
Работать вы должны с атомарным значением, т. е. с "пересечением" определенной строки и столбца.
Т. е. вы должны веделить отдельный столбец который будет хранить значения, представляющее собой ссылку (ForignKey)
на строку в отдельной таблице.
В просетйшем случае та таблица будет содержать всего два столбца:
- Первичный ключ.
- Значение.
Как вы "оформите значение" - это уже Ваше дело.
Хотите это будет просто имя формы, хотите ссылка на внешнюю процедуру, хотите BLOB-объект.
Вобще, мой совет, уделите свое время прочтению книги по реляционной математике. Если нет времени на прочтение талмуда типа "Введение в реляционные базы данных", то прочтите какую либо книжку по MS SQL. ваша беда что вы начинаете оперировать в терминах среды програмирования, а это не правильно. Сначала проектируется ЧТО и КАК нужно сделать, а ЧЕМ это дело десятое
-
BlackEric
Re: Прочие БД - Строка БД (таблицы) - ссылка
Как я уже сказал, нужно чтобы либо сама любая строка в DBGridEh1 была кнопкой, либо нужно сделать так, чтобы была возможность каким-либо образом пометить её, что выбрана ТАКАЯ-ТО строка и по средством обычного БуттонКлик Перейти на другую пустую форму
Если фигурально выражаться д/б такая конструкция:
1 строка = 1 форма
2 строка = 2 форма
и.т.д
Если фигурально выражаться д/б такая конструкция:
1 строка = 1 форма
2 строка = 2 форма
и.т.д
-
Student00
Re: Прочие БД - Строка БД (таблицы) - ссылка
Идея не верна.
Если будет 10000 записей, то вы будете создавать 10000 кнопок?
Вам нужно создать 2 таблицы
и при выборе записей в одной (мастер) отображать соответствующие ей данные в другой (деталь).
Т.е. гуглите по словам мастер-деталь и смотрите что это такое.
Цитата Student00:
ADOTable1, ADOQuery1
Лучше использовать ADODataSet.
Если будет 10000 записей, то вы будете создавать 10000 кнопок?
Вам нужно создать 2 таблицы
и при выборе записей в одной (мастер) отображать соответствующие ей данные в другой (деталь).
Т.е. гуглите по словам мастер-деталь и смотрите что это такое.
Цитата Student00:
ADOTable1, ADOQuery1
Прочие БД - Строка БД (таблицы) - ссылка
Лучше использовать ADODataSet.
-
kim-aa
Re: Прочие БД - Строка БД (таблицы) - ссылка
Цитата Student00:
как сделать так, чтобы при запуске приложения, программа автоматически осуществляла запрос к указанной таблице в БД и динамически создавала радио кнопки в зависимости от количества записей в таблице, т.е. 1 запись = 1 кнопка с соответствующим наименованием
В Access проще всего сделать форму с заведомо достаточным количеством радокнопок, установить свойство visible в false, а при открытии делать видимыми только нужные.
Цитата Student00:
3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!
В Access команда DoCmd.OpenForm требует имя формы как строку. Добавь в таблицу строковое поле "Имя Формы" и передавай его значение.
как сделать так, чтобы при запуске приложения, программа автоматически осуществляла запрос к указанной таблице в БД и динамически создавала радио кнопки в зависимости от количества записей в таблице, т.е. 1 запись = 1 кнопка с соответствующим наименованием
Прочие БД - Строка БД (таблицы) - ссылка
В Access проще всего сделать форму с заведомо достаточным количеством радокнопок, установить свойство visible в false, а при открытии делать видимыми только нужные.
Цитата Student00:
3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!
Прочие БД - Строка БД (таблицы) - ссылка
В Access команда DoCmd.OpenForm требует имя формы как строку. Добавь в таблицу строковое поле "Имя Формы" и передавай его значение.
-
BlackEric
Re: Прочие БД - Строка БД (таблицы) - ссылка
Спасибо конечно, но все уже реализовано посредством запроса к файлам ini ))
-
Dyvne Nihto
Re: Прочие БД - Строка БД (таблицы) - ссылка
Ребят, все что выше это ерунда.
*.ini - идея тоже практически провалилась.
Вобще делаю экспертную систему. Выбор бытовой техники.
Просьба скачать файл прежде чем читать дальше
1) Как видно на первой странице мы в компонент DBLookupComboBox1 из BD.mdb присваиваем значения из таблицы "kat".
2) Переходим на следующую страницу и начинаются проблемы:
Компонент DBLookupListBox1 должен отображать список вопросов, соответствующих выбранной на первом шаге категории. Для этого он обращается к таблице "vopros", но выводятся все вопросы какие есть в таблице.
Подскажите пожалуйста что нужно сделать чтобы было как должно быть. Возможно нужно подругому организовать БД, возможно нужно что-то сделать (прописать в коде, либо может компонент какой бросить или заменить) - я не знаю.
*.ini - идея тоже практически провалилась.
Вобще делаю экспертную систему. Выбор бытовой техники.
Просьба скачать файл прежде чем читать дальше
1) Как видно на первой странице мы в компонент DBLookupComboBox1 из BD.mdb присваиваем значения из таблицы "kat".
2) Переходим на следующую страницу и начинаются проблемы:
Компонент DBLookupListBox1 должен отображать список вопросов, соответствующих выбранной на первом шаге категории. Для этого он обращается к таблице "vopros", но выводятся все вопросы какие есть в таблице.
Подскажите пожалуйста что нужно сделать чтобы было как должно быть. Возможно нужно подругому организовать БД, возможно нужно что-то сделать (прописать в коде, либо может компонент какой бросить или заменить) - я не знаю.
-
Student00
Re: Прочие БД - Строка БД (таблицы) - ссылка
Спасибо конечно, но все уже реализовано посредством запроса к файлам ini ))