![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TField.LookupDataSet [D6, IB6.x]
Saperxl © (2003-09-19 14:09:00)
У меня есть две таблицы: 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 ничего вообще не отображается... Помогите, пожалуйста!
saperxl (2003-09-20 21:08:00) [1]
Да Я уже понял, что необходимо освежить кое-что в памяти, да и собственно проблема разрешилась с Вашей помощью - Спасибо.
Zacho (2003-09-19 21:37:00) [2]
> Saperxl (19.09.03 15:17) [7]
> А что за Join?
Ну как можно работать с SQL-серверм не зная SQL ??? Настоятельно рекомендую: почитай любой учебник по SQL.
Один (а может и самый) из лучших - М.Грабер "SQL (бестселлер)"
А конкретно по IB - всегда под руками должны быть Data Definition Guide и Language Reference.
Vlad (2003-09-19 15:34:00) [3]
select b.*, l.name from bases b left outer join locations l on b.location=l.id
Получишь то что ты хочешь
Saperxl (2003-09-19 15:17:00) [4]
А во!
теперь разобрался.
А что за Join?
Saperxl (2003-09-19 14:59:00) [5]
Действительно глючок - просто надо DataSource добавлять на форму апосля. Спасибо!
Только грид теперь пустой вообще.
Я делаю так:
procedure TForm1.FormCreate(Sender: TObject);
begin
IBDatabase1.Open;
with IBQuery1.SQL do begin
Add("SELECT * FROM air_bases");
end; //with
IBQuery1.Open;
end;
Vlad (2003-09-19 14:49:00) [6]
Если они находятся на одной форме, то должно быть.
Если на разных, но в Uses надо добавить этот модуль.
Если не поможет, пропиши руками, может глюк какой.
Saperxl (2003-09-19 14:39:00) [7]
Как через DataSource Я положил Query на форму, а в поле DataSet у DataSource нет этого query (там ничего вообще нет)...
Vlad (2003-09-19 14:31:00) [8]
>Saperxl (19.09.03 14:27) [2]
Ничего заново переделывать не надо. Внешние ключи ты определил не зря. Именно они будут использоваться при Join в SQL предложении.
Я не знаю как к TQuery присобачить DBGrid.
Точно так же как и к TTable, через DataSource.
Saperxl (2003-09-19 14:27:00) [9]
Я не знаю как к TQuery присобачить DBGrid. Конечная цель очевидна, так чтобы грид мона было редактировать выбирая значения полей из списков возможных полей. Вообще говоря не совсем понятно нзачем Я определял в своей базе ForeiginKeys если при программировании все надо проделать заново...
Vlad (2003-09-19 14:13:00) [10]
Откуда у всех такая любовь к TTable ? Почему бы тоже самое не сделать в qurey с нормальным Join"ом в SQL запросе ?