Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.02;
Скачать: CL | DM;

Вниз

Реальные данные вместо ссылок   Найти похожие ветки 

 
bagos   (2009-04-02 15:52) [0]

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


 
stas ©   (2009-04-02 15:56) [1]

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


 
Sergey13 ©   (2009-04-02 15:56) [2]

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


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

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


 
Ega23 ©   (2009-04-02 16:50) [4]

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 17:07) [5]

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


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

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


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


> kliver   (05.06.09 12:37) [6]

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


 
MsGuns ©   (2009-06-05 14:53) [8]

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


 
Ega23 ©   (2009-06-05 15:15) [9]

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


 
MsGuns ©   (2009-06-05 15:21) [10]

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


 
Sergey13 ©   (2009-06-05 16:05) [11]

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

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


 
set1212   (2009-06-09 06:37) [12]

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

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

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



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

Текущий архив: 2009.08.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
4-1213516366
TForumHelp
2008-06-15 11:52
2009.08.02
Ресурсы в EXE-файле - VersionInfo


15-1244014443
darlo
2009-06-03 11:34
2009.08.02
Контроль области памяти


15-1243963056
дмитрий
2009-06-02 21:17
2009.08.02
архивация данных


3-1225086355
hic
2008-10-27 08:45
2009.08.02
Передача данных из сохраненного отчета FastReport в Delphi


15-1243497903
VirEx (work)
2009-05-28 12:05
2009.08.02
День программиста