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

Вниз

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

 
31512 ©   (2004-04-07 13:57) [0]

Вопрос простой: существуют ли какие-либо особенности при передаче LookUp полей, созданных на сервере, клиенту?
Обычное приложение работает с ним на "ура", но стоит задать такое поле на сервере, как всё работать перестаёт. Ни редактировать его нельзя, ни вставить новую запись. Т.е. эффект LookUpа просто пропадает. А жаль. Почему?


 
Polevi ©   (2004-04-07 14:38) [1]

а зачем лукап на сервере ?


 
31512 ©   (2004-04-07 14:48) [2]

Для Polevi
Резонное замечание. Можно конечно и на клиенте состряпать LookUp. Без проблем. Но коль скоро можно воспользоваться способностью сервера передавать уже настроенные поля на клиент и есть необходимость избавиться от логики БД на клиенте, то почему бы этим не воспользоваться?


 
Кщд   (2004-04-07 14:52) [3]

31512 ©   (07.04.04 14:48) [2]
а ANSI SQL Вам в этом не помошник?


 
31512 ©   (2004-04-07 14:53) [4]

И вообще, возможна ли передача LookUp поля на клиент?


 
31512 ©   (2004-04-07 14:58) [5]

Для Кщд
Я дико извиняюсь. Совсем забыл дать пояснения. Речь идёт не о сервере БД вовсе. Речь идёт о MIDAS приложении. Под сервером понимается серверное приложение, входящее в трёхзвенку. И LookUp поле создаётся в ADOQuery, а потом через DataSetProvider передаётся на клиенское приложение, вместе с другими полями...
ANSI SQL тут не причём, я использую Transact-SQL, поскольку работаю с MS SQL Server 2000...


 
31512 ©   (2004-04-07 15:03) [6]

Связь "Главная-Детальная"!!!!!!!!!!!!!!!!!!!!!!


 
Polevi ©   (2004-04-07 15:16) [7]

>31512 ©   (07.04.04 14:48) [2]
сериализуй датасеты в xml TClientDataset формата и на клиенте TClientDataset.LoadFromStream


 
Nikolay M. ©   (2004-04-07 15:18) [8]


> Т.е. эффект LookUpа просто пропадает. А жаль. Почему?

Имхо, ты уже не в первый раз останавливаешь мысль на полпути и вместо того, чтобы немного додумать, лезешь на форум, чтобы только запутаться.
Лукапное поле у тебя на апп-сервере у какого-нибудь TADOQuery - так? Допустим, зовется оно qQueryLOOKUP_FIELD. А теперь создай на клиенте у соответствующего CDS-а persistent-поля и посмотри тип поля у cdsCDSLOOKUP_FIELD. Не проверял сам, но подозреваю, что оно будет строкового типа только на чтение. Ни о каких лукапах на клиенте речи не идет.


 
Vlad ©   (2004-04-07 15:48) [9]

Я вот кажется в БДЕ делал нечто подобное. Если на app-сервере связать два датасета мастер-детайлом и передать мастер-датасет через провайдер, то на клиенте (в ClientDataSet) автоматически создается еще одно поле типа TDataSet, в котором и будет лежать твой детайл-набор данных.
Далее кидаешь на форму еще один ClientDataSet и в проперти DataSetField указываешь датасет-поле из основного ClientDataSet.
Все. Связка устанавливается автоматически.


 
31512 ©   (2004-04-07 16:08) [10]

Для Vlad
Я так и сделал, прочитав это в Тейксерье с Пачекой. Ты прав, но LookUp поля автоматом не возникает, его нужно задавать по полной программе в мастере создания New field. Так, наверное и надо делать. речь идёт немного о другом... Никаких главная-детальна связей создавать не надо. Просто на сервере делаем LookUp поле и передаём его клиенту. Вопрос: с ним можно будет работать, как с самым обычным LookUpoм? И грамотно ли это?


 
Romkin ©   (2004-04-07 16:18) [11]

НА клиенте это будет просто поле, без лукапа. Смысла особого нет, что лукап, что калькулируемое - практически одинаково.


 
31512 ©   (2004-04-07 16:20) [12]

Для Nikolay M.
Ты прав, но LookUp всё равно не работает.


 
31512 ©   (2004-04-07 16:29) [13]

Для Romkin
Так можно так запросто передавать LookUp поля на клиент или же банан будет? Пока банан выходить.


 
31512 ©   (2004-04-07 16:41) [14]

Я тут подумал и вот что получается. LookUp - создан не разбирая технологий, по которым всё фунциклирует. Для него нужно однозначно определить параметры: LookUpKeyField, LookUpResultField, KeyFields. И DataSet, конечно. Разумеется на клиент передаётся обычно поле, без LookUpa. И это правильно, поскольку на клиенте не возможно указать эти параметры, которые, по сути, определены на сервере. Поэтому LookUp должен создаваться на клиенте вручную. Кроме удобства он никаких плюсов не дает. По сему [9] и [10] мне кажутся самыми оптимальными.


 
Nikolay M. ©   (2004-04-07 17:18) [15]


> Я тут подумал и вот что получается. LookUp - создан не разбирая
> технологий, по которым всё фунциклирует. Для него нужно
> однозначно определить параметры: LookUpKeyField, LookUpResultField,
> KeyFields. И DataSet, конечно. Разумеется на клиент передаётся
> обычно поле, без LookUpa. И это правильно, поскольку на
> клиенте не возможно указать эти параметры, которые, по сути,
> определены на сервере. Поэтому LookUp должен создаваться
> на клиенте вручную.

Ну вот, молодцом :)
Получается, что на форум лазить и не обязательно было? :)


 
31512 ©   (2004-04-08 08:00) [16]

Для всех
Всем спасибо!



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
9-1069677464
[dRake]
2003-11-24 15:37
2004.05.02
ARGB цвет


1-1081838469
Tornado
2004-04-13 10:41
2004.05.02
Работа со строками


1-1082109103
СП
2004-04-16 13:51
2004.05.02
TForm


1-1082145132
NeyroSpace
2004-04-16 23:52
2004.05.02
Поток и все все все...


1-1081688743
IrQX
2004-04-11 17:05
2004.05.02
Почему не устанавливается компонент?





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