Форум: "Базы";
Текущий архив: 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