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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1243497903
VirEx (work)
2009-05-28 12:05
2009.08.02
День программиста


2-1244092170
Gans
2009-06-04 09:09
2009.08.02
Вызов хранимой процедуры


2-1244443734
saNat
2009-06-08 10:48
2009.08.02
Создание БД Access на основе существующего "каркаса"


15-1243606985
Пит
2009-05-29 18:23
2009.08.02
Сертификация ПО


3-1225220926
kile
2008-10-28 22:08
2009.08.02
sql server, оператор output и adoDataSet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский