Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
7-27750
-=[SDA]=-
2003-07-24 12:31
2003.10.09
А как интересно узнать текущую раскладку клавиатуры ?


8-27611
fs_more
2003-06-10 13:08
2003.10.09
Не могу воспроизвести файл с помощью PlaySound()


14-27733
wnew
2003-09-19 22:32
2003.10.09
Есть ли связисты на форуме?


3-27344
3APA3A
2003-09-19 23:56
2003.10.09
Можно ли создать такую таблицу?


9-27294
Хранитель_7К
2003-04-07 15:44
2003.10.09
Общая нормаль к TriangleStrip ???




   Наверх