Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реальные данные вместо ссылок [D7]


bagos ©   (2009-04-02 15:52:00) 

Всем здрасте, делаю базу на firebird и клиент на delphi.
Запнулся на след. месте. есть таблица со ссылками на другие таблицы. т.е. в таблицы одни циферки являющиеся id в других таблицах. Для пользователя это не очень удобно будет;)))
Как мне вывести информацию чтобы вместо ссылок пользователь видел реальные данные. Использую fibdatabase,fibdataset,datasource,dbgrid


set1212   (2009-06-09 06:37:00) [1]

>у меня в гриде отображаются 2 таблицы внутренним соединением >соединеные в одну. в принципе все для счастья есть в одной таблице, >просто наименования работ в другой хранятся и не удобно использовать >числовые ID работ. Поэтому использовал внутреннее соединение. НО при >попытке просто изменить данные в гриде или вставить запись выдает >ошибку  'Недостаточно сведений ключевого поля для обновления'. Как >сделать так чтобы данные в гриде прямо менять можно было?

Программа не понимает, какую именно таблицу надо редактировать, для этого в событии AfterOpen напишиши следующее

дата сет.Properties['Unique Table'].Value:= 'Таблицу которую хочешь отредактировать';


Sergey13   (2009-06-05 16:05:00) [2]

> [10] MsGuns ©   (05.06.09 15:21)

Сделать его редактируемым.


MsGuns   (2009-06-05 15:21:00) [3]

А как ты предлагаешь средствами IBX редактировать нередактируемый датасет ?


Ega23   (2009-06-05 15:15:00) [4]

Ну понеслось....
Давайте ещё C++ vs Delphi сюда приплетём...


MsGuns   (2009-06-05 14:53:00) [5]

Можно, но хитро. Например, используя вместо TIBDataSet TClientDataSet и запросы (лучше хранимки на сервере) с параметрами


Павел Калугин   (2009-06-05 14:18:00) [6]


> kliver   (05.06.09 12:37) [6]

Ние стоит так делать (редактировать в гриде) без крайней необходимости


kliver   (2009-06-05 12:37:00) [7]

у меня в гриде отображаются 2 таблицы внутренним соединением соединеные в одну. в принципе все для счастья есть в одной таблице, просто наименования работ в другой хранятся и не удобно использовать числовые ID работ. Поэтому использовал внутреннее соединение. НО при попытке просто изменить данные в гриде или вставить запись выдает ошибку  'Недостаточно сведений ключевого поля для обновления'. Как сделать так чтобы данные в гриде прямо менять можно было?


bagos   (2009-04-02 17:07:00) [8]

спасибо большое, но уже допер)))


Ega23   (2009-04-02 16:50:00) [9]

select A.Name, B.Type, C.SomethingElse
from ATable A inner join BTable B on (A.BID=B.ID)
                   inner join  CTable C on (B.CID=C.ID)
where
 ....
order by ...


bagos   (2009-04-02 16:31:00) [10]

select stu_specializations.name from stu_nagruzka inner join stu_specializations on stu_specializations.id = stu_nagruzka.spec_id

выводит что надо, но мне нужны и другие столбцы, запутался в синтаксисе.

select stu_specializations.name,stu_form.name from stu_nagruzka inner join stu_specializations on stu_specializations.id = stu_nagruzka.spec_id and stu_form on stu_form.id = stu_nagruzka.form_id


stas   (2009-04-02 15:56:00) [11]

Это вобще основы БД.
объединение таблиц на сервере (JOIN). либо подстановочные поля использовать.


Sergey13   (2009-04-02 15:56:00) [12]

Запросом. Или лукап полями.


Наверх

Титульная страница Поиск, карта сайта Написать письмо