![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO & lookup [D7, Access]
nick_van_rijn © (2006-11-24 14:31:00)Господа подскажите ответ.
Имеется база Access, в ней по умолчанию только таблицы (в структуре только связи таблиц) и одна хранимая процедура(запрос). в делфи создаем динамически объект Хранимой процедуры. и тут возникает проблема, а поля то у нас в возвращаемом процедурой наборе данных есть и lookup? как быть. Есстествено сразу хочется так
ADOStoredProc1.FieldByName('Вид_Документа').LookupDataSet:=Main.Type_Doc;
ADOStoredProc1.FieldByName('Вид_Документа').LookupKeyFields:='Код';
ADOStoredProc1.FieldByName('Вид_Документа').LookupResultField:='Тип_Документа';
ADOStoredProc1.FieldByName('Вид_Документа').Lookup:=true;
но тут ошибка на первой же строчке, извини но не вижу такого поля 'Вид_Документа' (набор данных то закрыт), но если его открыть то говорит что изменения формата поля возможно только при закрытом наборе данных. и как же быть?
Anatoly Podgoretsky (2006-11-24 18:14:00) [1]> nick_van_rijn (24.11.2006 17:33:20) [20]
Да хоть 20 экранов.
nick_van_rijn (2006-11-24 17:33:00) [2]>select a.id, b.name from table1 a
>join table2 b
>on (a.id=b.id)
>не подходит ?
нда, ну вот вчера токо запросы учить начал, до главы Join не дошел еще.
только у меня к каждой из 3 главных всего 5 справочников какие же это запросы получатся....?
хотя третьего тут не дано.
Виталий Панасенко (2006-11-24 16:47:00) [3]select a.id, b.name from table1 a
join table2 b
on (a.id=b.id)
не подходит ?
Anatoly Podgoretsky (2006-11-24 16:34:00) [4]> nick_van_rijn (24.11.2006 16:28:15) [15]
JOIN тогда
Sergey13 (2006-11-24 16:34:00) [5]> основная работа происходит с записями все трех таблиц(запросы
> вида select .... union select ... union select .... union,
> что то вроде журнала документов).
Что-то мне это не нравится. Много union-ов говорит о недопроектированности, ИМХО.
> но теперь хотелось бы увидеть значения полей из справочников
> вместо кодов ключевых полей для связи со справочниками.
Добавь в датасет на клиентелукапные поля ссылающиеся на датасеты справочников и наслаждайся.
nick_van_rijn (2006-11-24 16:33:00) [6]>Никак, или статические поля в наборе или лукапы. Спасибо за ответ.
nick_van_rijn (2006-11-24 16:28:00) [7]Создано 3 основные таблицы, связаных друг с другом последовательно (1->2->3). К ним добавлены справочники, которые используются для хранения повторяющихся значений в основных таблицах. При работе со строками 3 основных таблиц основная работа происходит с записями все трех таблиц(запросы вида select .... union select ... union select .... union, что то вроде журнала документов).
Просчитаввозможные варианты фильтрации и их количество сделал вывод что удобно было эти фильтрации удобно реализовать в виде хранимых и вызывать когда надо, передавая им параметры. Все так и заработало. но теперь хотелось бы увидеть значения полей из справочников вместо кодов ключевых полей для связи со справочниками.
Anatoly Podgoretsky (2006-11-24 16:27:00) [8]> nick_van_rijn (24.11.2006 16:15:12) [12]
Никак, или статические поля в наборе или лукапы. В первом случае об "отображать лукаповые поля в гриде." говорить не приходится.
nick_van_rijn (2006-11-24 16:16:00) [9]объясняю без терминологии(любого типа)...
nick_van_rijn (2006-11-24 16:15:00) [10]да ничего я никуда не перекладываю, все эти фенечки я и сам понимаю.
как мне на КЛИЕНТЕ не создавать 20 статичных объектов хранимых процедур только для того что бы отображать лукаповые поля в гриде.
Anatoly Podgoretsky (2006-11-24 16:08:00) [11]> Sergey13 (24.11.2006 16:06:09) [9]
> Желательно без терминологии. 8-)
Желательно c терминологией, но не самопальной.
Anatoly Podgoretsky (2006-11-24 16:07:00) [12]> nick_van_rijn (24.11.2006 15:33:05) [5]
А где тогда там лукап?
Sergey13 (2006-11-24 16:06:00) [13]> [7] nick_van_rijn © (24.11.06 15:42)
Для начала спокойно и подробно, по русски, со знаками препинания, озвучь задачу. Желательно без терминологии. 8-)
sniknik (2006-11-24 16:04:00) [14]> пожалуйста все поля процедуры есть
это поля возвращаемого рекордсета
> понятно что Access не понимает что я от него хочу
при чем тут аксесс? программу пишешь ты, и лукапы это клиентская "фенечка", серверу на них плевать безоговорочно (любому, не только движку аксесс).
поэтому не перекладывай с больной головы на здоровую, это ты не понимаешь сам чего хочеш.
nick_van_rijn (2006-11-24 15:42:00) [15]понятно что Access не понимает что я от него хочу, у него просто цифры в ключевых полях для лукапов, но вопрос статически в делфи это делается, и как так же сделать динамически?
ANB (2006-11-24 15:38:00) [16]
> ну объекту сторепроц жму правой кнопкой, филдсэдитор, добавить
> и пожалуйста все поля процедуры есть
Они не локаповые с точки зрения дэйтасета, т.к. он не может их отличить от реальных полей.
nick_van_rijn (2006-11-24 15:33:00) [17]ну объекту сторепроц жму правой кнопкой, филдсэдитор, добавить и пожалуйста все поля процедуры есть
nick_van_rijn (2006-11-24 15:32:00) [18]ээээ могу...=) у меня статично все лукап поля в гриде видны как положено...
Anatoly Podgoretsky (2006-11-24 15:27:00) [19]> nick_van_rijn (24.11.2006 15:20:02) [2]
Не можешь, нет полей у процедуры.
nick_van_rijn (2006-11-24 15:20:00) [20]но статично ведь я могу получить поля процедуры и назначить их лукапами?