Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO & lookup [D7, Access]


Страницы:   1 2

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]

но статично ведь я могу получить поля процедуры и назначить их лукапами?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо