Прочие БД - Строка БД (таблицы) - ссылка

Аватара пользователя
Student00

Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Student00 »

Есть БД на делфи

Компоненты:

ADOConnection1 - цепанули к БД Accsess

ADOTable1 - Активировали таблицу

ADOQuery1 - сделали запрос к полю naimen, нашей таблицы

DataSource1 - все подконнектили.



Кроче при запуске программы все выводит в DBGridEh1 правильно.



Но возникла необходимость сделать следующее:

Алгоритм:

1) Выделяешь (или как еще можно реализовать это?) некоторую строку(ячейку) из таблицы (DBGridEh1).

2) Жмешь кнопку "Перейти".

3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!



Т.е. проблема в том: Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?

Чтобы срабатывала команда типа form2.show;



Ребята, подскажите пожалуйста.
Аватара пользователя
BlackEric

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение BlackEric »

Вамнужно просто показать пустую форму? Подробнее распишите, что должно быть в результате перехода.
Аватара пользователя
Student00

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Student00 »

Сделал. Теперь есть нормальная связь между компонентами DBLookupComboBox1 и DBLookupListBox1.



В компоненте DBLookupListBox1 выводиться список. В перспективе д/б так. Пользователь выбирает строку (вопрос), т.е. совершает событие onClick

Согласно выделенному вопросу подгружаются варианты ответов (DBRadioGroup1).



Но проблема возникла на первом этапе - компонент DBLookupListBox1 выделяет сразу все строки (все вопросы).

Как сделать так, что бы выделялась каждая строка я незнаю. Ребят, подскажите плз!





ПС.

БД будет не большая (учебная), DBLookupComboBox1 уже настроил подключил (да и легче его настроить) так что пусть будет он.
Аватара пользователя
Student00

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Student00 »

Цитата Student00:



Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылкой?
Прочие БД - Строка БД (таблицы) - ссылка




Это невыполнимое требование с точки зрения реляционной алгебры.

Работать вы должны с атомарным значением, т. е. с "пересечением" определенной строки и столбца.

Т. е. вы должны веделить отдельный столбец который будет хранить значения, представляющее собой ссылку (ForignKey)

на строку в отдельной таблице.

В просетйшем случае та таблица будет содержать всего два столбца:

- Первичный ключ.

- Значение.



Как вы "оформите значение" - это уже Ваше дело.

Хотите это будет просто имя формы, хотите ссылка на внешнюю процедуру, хотите BLOB-объект.



Вобще, мой совет, уделите свое время прочтению книги по реляционной математике. Если нет времени на прочтение талмуда типа "Введение в реляционные базы данных", то прочтите какую либо книжку по MS SQL. ваша беда что вы начинаете оперировать в терминах среды програмирования, а это не правильно. Сначала проектируется ЧТО и КАК нужно сделать, а ЧЕМ это дело десятое
Аватара пользователя
BlackEric

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение BlackEric »

Как я уже сказал, нужно чтобы либо сама любая строка в DBGridEh1 была кнопкой, либо нужно сделать так, чтобы была возможность каким-либо образом пометить её, что выбрана ТАКАЯ-ТО строка и по средством обычного БуттонКлик Перейти на другую пустую форму

Если фигурально выражаться д/б такая конструкция:

1 строка = 1 форма

2 строка = 2 форма

и.т.д
Аватара пользователя
Student00

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Student00 »

Идея не верна.

Если будет 10000 записей, то вы будете создавать 10000 кнопок?

Вам нужно создать 2 таблицы

и при выборе записей в одной (мастер) отображать соответствующие ей данные в другой (деталь).

Т.е. гуглите по словам мастер-деталь и смотрите что это такое.




Цитата Student00:



ADOTable1, ADOQuery1
Прочие БД - Строка БД (таблицы) - ссылка




Лучше использовать ADODataSet.
Аватара пользователя
kim-aa

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение kim-aa »

Цитата Student00:



как сделать так, чтобы при запуске приложения, программа автоматически осуществляла запрос к указанной таблице в БД и динамически создавала радио кнопки в зависимости от количества записей в таблице, т.е. 1 запись = 1 кнопка с соответствующим наименованием
Прочие БД - Строка БД (таблицы) - ссылка




В Access проще всего сделать форму с заведомо достаточным количеством радокнопок, установить свойство visible в false, а при открытии делать видимыми только нужные.




Цитата Student00:



3)Происходит переходит на другую форму соответствующую выбранному полю. Но фишка в том, что каждое поле будет иметь СВОЮ форму!
Прочие БД - Строка БД (таблицы) - ссылка




В Access команда DoCmd.OpenForm требует имя формы как строку. Добавь в таблицу строковое поле "Имя Формы" и передавай его значение.
Аватара пользователя
BlackEric

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение BlackEric »

Спасибо конечно, но все уже реализовано посредством запроса к файлам ini ))
Аватара пользователя
Dyvne Nihto

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Dyvne Nihto »

Ребят, все что выше это ерунда.

*.ini - идея тоже практически провалилась.



Вобще делаю экспертную систему. Выбор бытовой техники.

Просьба скачать файл прежде чем читать дальше



1) Как видно на первой странице мы в компонент DBLookupComboBox1 из BD.mdb присваиваем значения из таблицы "kat".

2) Переходим на следующую страницу и начинаются проблемы:

Компонент DBLookupListBox1 должен отображать список вопросов, соответствующих выбранной на первом шаге категории. Для этого он обращается к таблице "vopros", но выводятся все вопросы какие есть в таблице.



Подскажите пожалуйста что нужно сделать чтобы было как должно быть. Возможно нужно подругому организовать БД, возможно нужно что-то сделать (прописать в коде, либо может компонент какой бросить или заменить) - я не знаю.
Аватара пользователя
Student00

Re: Прочие БД - Строка БД (таблицы) - ссылка

Сообщение Student00 »

Спасибо конечно, но все уже реализовано посредством запроса к файлам ini ))
Ответить

Вернуться в «Программирование и базы данных»