Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Вниз

Редактирование данных   Найти похожие ветки 

 
Fuelfire   (2003-05-22 11:04) [0]

Здравствуйте, специалисты! Подскажите, как решить следующую задачу.
Есть главная форма с ДБгридом. При клике по ячейке уходишь на форму редактирования конкретной записи. На этой форме надо отобразить в DBEdit"ах значения записи из главной таблицы (здесь проблем нет), а также в 2-х Гридах все записи из двух подчиненных таблиц и позиционировать индикатор Гридов на нужное значение.
Если зацепить эти Гриды на Query, то на форме редактирования при выборе строк в гриде осуществляется переход по записям. Если же зацепить Грид на соответствующие подчиненные таблицы, тогда на форме редактирования записи не отображается конкретное значение из этих таблиц: индикаторы на Гридах всегда установлены на первую запись...Что можно сделать?


 
Stas   (2003-05-22 11:16) [1]

А почему не использовать Query ?
А может ты неправильно связал таблицы ?


 
Sergey13   (2003-05-22 11:19) [2]

2Fuelfire (22.05.03 11:04)
>а также в 2-х Гридах все записи из двух подчиненных таблиц
Все записи или нужные?
>и позиционировать индикатор Гридов на нужное значение
Не грид позиционируй а в датасете находи нужную запись, а уж грид как нибудь сам позиционируется.
>Если зацепить
Че й то я не понял про твои зацепы. Поподробнее можно?


 
Fuelfire   (2003-05-22 11:44) [3]

В общем такая ситуация.
Есть главная таблица Games: ID, Name, GenreID, Played, Developer, Net, Solution, Cheat
Есть справочник фирм Firms: ID, FirmName
Есть справочник жанров Genres: ID, GenreName
Связаны эти таблицы следующим образом Games.GenreID <-->Genres.ID; Games.Developer<-->Firms.ID
На форме редактирования надо показать все поля из таблицы Игры плюс список жанров и список фирм..В списках надо показать к какому жанру относится и кто разработчик...Вот такая постановка задачи...Так как сделал на данный момент, получается, что в 2-х гридах записи из таблиц Жанры и Игры дублируются


 
Sergey13   (2003-05-22 11:59) [4]

для жанров и разработчиков (хотя зачем их редактировать?) надо (можно) в таблице игр создать лукапные поля на соответствующие справочники. И никаких дополнительных гридов. Если я правильно понял.


 
Ann   (2003-05-22 12:09) [5]

а текст запроса? может тогда разбиремся почему дубрируются


 
Fuelfire   (2003-05-22 12:21) [6]

SELECT Games.ID, Games.Name, Games.GenreID, Games.Played, Games.Publishier, Games.Developer, Games.GameYear, Games.Net, Games.Playability, Games.Graphics, Games.Sound, Games.Solution, Games.Cheat, Genres.GenreName, Firms.FirmName, Articles.GameID, Articles.Info
FROM "Games.DB" Games LEFT OUTER JOIN "Firms.DB" Firms on (Games.Developer = Firms.ID) LEFT OUTER JOIN "Genres.DB" Genres ON (Games.GenreID = Genres.ID)
LEFT OUTER JOIN "Articles.DB" Articles ON (Games.ID = Articles.GameID) WHERE (Name LIKE :Name_param) ORDER BY Games.Name

Дублируются они потому, что запрос вытягивает записи с помощью LIKE.... Так как допустим две игры, название которых начинается скажем на букву A могут быть одного жанра - вот уже пошло дублирование.
LIKE использую по той причине, что на главной форме находится TTreeView. Нажимаю на папку - в гриде появляются нужные записи.. Может по клику на конкретной записи вытаскивать ее Ид и формировать другой запрос?


 
Fuelfire   (2003-05-22 12:25) [7]

2Sergey13 ©
Жанры и Фирмы редактировать не надо, но надо дать возможность пользователю их менять для игр



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
11-34764
VEG
2002-09-20 20:54
2003.06.12
OCX


1-34857
oleg_SYS
2003-05-30 21:29
2003.06.12
Что такое CM_MOUSEENTER CM_MNOUSELEAVE?


3-34667
Алексей
2003-05-15 07:41
2003.06.12
Как прочитать информацию из текстового файла


1-34812
Pattern
2003-05-29 23:38
2003.06.12
Ошибка при создании компанента


1-34883
Mishenka
2003-05-31 21:14
2003.06.12
Как задать строку в ComboBox?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский