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

Вниз

TField.LookupDataSet   Найти похожие ветки 

 
Saperxl   (2003-09-19 14:09) [0]

У меня есть две таблицы: bases и locations. В bases есть поле location, а в locations поля: id и name. Хочется чтобы при просмотре табла bases в TDBGrid в столбце location отображался не номер (bases.location), а название (bases.location->locations.id->lactions.name). Я привязываю IBTable к таблице bases добавляю поля; у поля location прописываю LookupDataSet, LookupKeyFields(locations.id), LookupResultFields(locations.name), KeyFields(location), ставлю FieldKind(fkLookup). А в гриде в поле location ничего вообще не отображается... Помогите, пожалуйста!


 
Vlad   (2003-09-19 14:13) [1]

Откуда у всех такая любовь к TTable ? Почему бы тоже самое не сделать в qurey с нормальным Join"ом в SQL запросе ?


 
Saperxl   (2003-09-19 14:27) [2]

Я не знаю как к TQuery присобачить DBGrid. Конечная цель очевидна, так чтобы грид мона было редактировать выбирая значения полей из списков возможных полей. Вообще говоря не совсем понятно нзачем Я определял в своей базе ForeiginKeys если при программировании все надо проделать заново...


 
Vlad   (2003-09-19 14:31) [3]

>Saperxl (19.09.03 14:27) [2]
Ничего заново переделывать не надо. Внешние ключи ты определил не зря. Именно они будут использоваться при Join в SQL предложении.

Я не знаю как к TQuery присобачить DBGrid.
Точно так же как и к TTable, через DataSource.


 
Saperxl   (2003-09-19 14:39) [4]

Как через DataSource Я положил Query на форму, а в поле DataSet у DataSource нет этого query (там ничего вообще нет)...


 
Vlad   (2003-09-19 14:49) [5]

Если они находятся на одной форме, то должно быть.
Если на разных, но в Uses надо добавить этот модуль.
Если не поможет, пропиши руками, может глюк какой.


 
Saperxl   (2003-09-19 14:59) [6]

Действительно глючок - просто надо DataSource добавлять на форму апосля. Спасибо!
Только грид теперь пустой вообще.
Я делаю так:
procedure TForm1.FormCreate(Sender: TObject);
begin
IBDatabase1.Open;
with IBQuery1.SQL do begin
Add("SELECT * FROM air_bases");
end; //with
IBQuery1.Open;
end;


 
Saperxl   (2003-09-19 15:17) [7]

А во!
теперь разобрался.
А что за Join?


 
Vlad   (2003-09-19 15:34) [8]

select b.*, l.name from bases b left outer join locations l on b.location=l.id
Получишь то что ты хочешь


 
Zacho   (2003-09-19 21:37) [9]


> Saperxl (19.09.03 15:17) [7]
> А что за Join?

Ну как можно работать с SQL-серверм не зная SQL ??? Настоятельно рекомендую: почитай любой учебник по SQL.
Один (а может и самый) из лучших - М.Грабер "SQL (бестселлер)"
А конкретно по IB - всегда под руками должны быть Data Definition Guide и Language Reference.


 
saperxl   (2003-09-20 21:08) [10]

Да Я уже понял, что необходимо освежить кое-что в памяти, да и собственно проблема разрешилась с Вашей помощью - Спасибо.



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

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

Наверх




Память: 0.46 MB
Время: 0.014 c
8-27610
volodya_
2003-05-15 10:09
2003.10.09
Громкость звучания mp3


1-27428
Triny
2003-09-28 16:52
2003.10.09
Шрифт кнопки


6-27628
Doctor Deejay
2003-08-07 15:26
2003.10.09
Чаты без сокетов


4-27788
Виктор
2003-08-04 21:08
2003.10.09
Как получить хэндел едита чужого окна?


1-27581
alexus
2003-09-29 12:57
2003.10.09
Компонент Scroll





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