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

Вниз

SQL + LookUp   Найти похожие ветки 

 
Sozon   (2005-11-27 22:29) [0]

В моей базе данных все делается через SQL (создание, уделение, редактирование записей). Так вот, нужно ли в таком случае создавать LookUp поля или просто пользоваться запросом типа:


SELECT v.otkuda, v.kuda, v.time, s.familia, s.name, s.car
FROM vizov v, sotrudnik s
where v.sotr_ID=s.sotr_ID


Поясняю в таблице vizov есть поле Sotr_ID, которое связано с полем Sotr_ID таблицы сотрудников Sotrudnik. И еще одно в будущем планируется эту базу сделать удаленной (InterBase). Заранее спасибо.


 
msguns ©   (2005-11-28 09:33) [1]

Непонятен смысл вопроса.
Зачем на клиенте нужен lookup, если запросом возвращается ФИО (я бы, кстати, делал немного иначе:

SELECT v.otkuda, v.kuda, v.time, s.familia+" "+s.name+" "+s.car as FIO
FROM vizov v Left Join sotrudnik s On (v.sotr_ID=s.sotr_ID)
 ORDER BY ...
)


 
ANB ©   (2005-11-28 09:38) [2]


> Sozon   (27.11.05 22:29)

Lookup может понадобиться, только если в гриде ты захочешь сделать выпадающий список. Штука довольно вредная, но иногда удобная, если БД небольшая и пользователей немного.


 
sozon   (2005-11-28 11:23) [3]

Я еще слышал, что в удаленных базах данных не рекомендуется использовать LookUp поля. Это правда?


 
Sergey13 ©   (2005-11-28 11:25) [4]

2[3] sozon   (28.11.05 11:23)
А аргументы ты там-же не слышал? Некоторые вот например считают, что использование гридов - отстой.


 
ANB ©   (2005-11-28 11:32) [5]


> sozon   (28.11.05 11:23) [3]
> Я еще слышал, что в удаленных базах данных не рекомендуется
> использовать LookUp поля. Это правда?

В принципе - ничего особо страшного, если все правильно настроить (включить кэширование справочных дейтасетов).


 
Lexer ©   (2005-11-28 11:36) [6]

В данном случае Lookup поля полезны, если часто меняется справочник сотрудников, например ФИО - заменили, а в таблице вызовов юзер видит новое значение без переотрытия этой таблицы.


 
Sergey13 ©   (2005-11-28 11:42) [7]

2[6] Lexer ©   (28.11.05 11:36)
Это как?


 
Lexer ©   (2005-11-28 11:49) [8]

Что как? Запросом достаем данные + из справочника коды, а значения справочников (ФИО) делаем лукап-полем. При изменении справочника - лукап покажет ново значение. А если достать запросом, то его придется переоткрыть.


 
Sergey13 ©   (2005-11-28 11:56) [9]

2[8] Lexer ©   (28.11.05 11:49)
> При изменении справочника - лукап покажет ново значение.
С чего бы это? От святого духа?


 
Lexer ©   (2005-11-28 12:01) [10]

Sergey13 ©   (28.11.05 11:56) [9]
>С чего бы это? От святого духа?

Нет слов...
Да от святой троицы Delphi, TDataSet и TDataSource.
Аминь.


 
Sergey13 ©   (2005-11-28 12:10) [11]

2 [10] Lexer ©   (28.11.05 12:01)
>Нет слов...
Аналогично.


 
evvcom ©   (2005-11-28 12:12) [12]


> Lexer ©

Ты забыл сказать, что лукап датасет все-таки придется переоткрыть, так что к святой троице надо еще добавить пару Close и Open.


 
msguns ©   (2005-11-28 12:13) [13]

>Lexer ©   (28.11.05 12:01) [10]
>Да от святой троицы Delphi, TDataSet и TDataSource.

Можно вопрос "из зала" ?
А каким образом эта "троица" прознает про то, что у Петрова Петра Петровича исправили отчество на Иванович ? Без переотерытия, ессно ?


 
Lexer ©   (2005-11-28 12:15) [14]

to evvcom, зачем переоткрывать? если все новые данные уже в нём после редактирования...
Изменили значение поля справочника - лукап покажет новое.


 
Sergey13 ©   (2005-11-28 12:26) [15]

2[14] Lexer ©   (28.11.05 12:15)
А если редактировали на другой машине? Речь то вроде про удаленные БД идет.


 
Lexer ©   (2005-11-28 12:32) [16]

Sergey13 ©   (28.11.05 12:26) [15]
А если редактировали на другой машине? Речь то вроде про удаленные БД идет.

Согласен, в этом случае не прокатит... Изменения не будут видны, придется переоткрывать справочник.
Можно использовать лукап, можно нет, всё зависит от ситуации. Например если в справочнике всего 5-10 записей. А получаемые данные чуть побольше, скажем 1000. То использование лукап позволит не тянуть с сервера на каждую запись "ФИО" - 1000 ФИО, а вытянуть всего 5 в справочник. В случае с интрнетом - экономия трафика.


 
msguns ©   (2005-11-28 12:56) [17]

>Lexer ©   (28.11.05 12:32) [16]
>Можно использовать лукап, можно нет, всё зависит от ситуации. Например если в справочнике всего 5-10 записей. А получаемые данные чуть побольше, скажем 1000.

Это как это ?

>То использование лукап позволит не тянуть с сервера на каждую запись "ФИО" - 1000 ФИО, а вытянуть всего 5 в справочник. В случае с интрнетом - экономия трафика.

кгхрм.. переведи..



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

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

Наверх




Память: 0.51 MB
Время: 0.041 c
15-1136301212
oldman
2006-01-03 18:13
2006.01.29
Перспективы развития железа.


3-1133301745
vladik
2005-11-30 01:02
2006.01.29
запрос на создание первичного ключа


2-1136800381
Foxtrot
2006-01-09 12:53
2006.01.29
Как в SQL использовать CreateIndex (забыл синтаксис)


3-1133341500
MU
2005-11-30 12:05
2006.01.29
MS 2000 Server, SQL Server, MSDTC


2-1136755140
Exciter
2006-01-09 00:19
2006.01.29
Простой вопрос.