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

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

Access. Записи детала в одну строку [D6]


Страницы:   1 2

msguns ©   (2005-10-06 11:49:00) 

Запросом, видимо, нельзя. А есть вообще способы сделать это на "сервере" ?

Поясню:
1. Таблица изданий (GID,..)
2. Таблица авторов (AID,FIO)
3. Таблица авторов издания (ID,GID,AID)

Надо "вытащить" всех авторов каждого издания и показать их в гриде одной строкой :

"Манифест комм.партии" ... К.Маркс,Ф.Энгельс,В.Ленин,...

Идея была: развернуть Тбл3 по типу кросса и подцепить связкой к осн.таблице. Но как это реализовать, не могу въехать, ведь кол-во "столбцов" (авторов) произвольное

Спасибо за любую помощь и советы


Danilka   (2005-10-07 08:09:00) [1]

[20] msguns ©   (06.10.05 16:05)
Поэтому третьей таблицы не надо (а ее уже и нет - мир ее праху !)


Ну это ты зря, на мой взгляд.

Seg   (06.10.05 17:40)
Я же не сам это придумал, мне это пытаются доказать:

> и однопользовательская - на dbf файлах.

неправда


Ты просто не понял. Имелось ввиду то, что многопользовательские тоже довольно успешно работают на ДБФ-ках.


Seg   (2005-10-06 17:41:00) [2]

В "потрепаться" ветка про 1С.


Seg   (2005-10-06 17:40:00) [3]

Я же не сам это придумал, мне это пытаются доказать:


> и однопользовательская - на dbf файлах.

неправда


sniknik   (2005-10-06 17:34:00) [4]

ну какже не работает, работает, и с dbf и с mssql, mysql и с ораклом может, стоит только захотеть... ;)


Seg   (2005-10-06 17:23:00) [5]

"набор файлов для хранения данных". Например, 1С.

А в другой ветке мне доказывали, что 1С не работает с dbf файлами.
Кто же прав?


msguns   (2005-10-06 17:10:00) [6]

>Seg   (06.10.05 16:53) [27]
>По меркам 10-ти летней давности, это может быть и СУБД, хотя больше похожи на набор файлов для хранения данных.

Весьма глубокое заблуждение, говорящее о некомпетентности и пренебрежении к непознанному ;))

Да будет тебе известно, что огромное число реально действующих и поныне систем во всю используют высмеиваемый тобою "набор файлов для хранения данных". Например, 1С.

Кроме того, вполне удачный и шустрый движок BDE начал реально загибаться лишь после выхода в свет широкодоступных фриварных сиквель-серверов, а до этого эксплуатировался так, что и твоему раклу не снилось (имеется в виду к-во контор, которые им пользовались).

С твоего разрешения, один маленький совет:
Не надо позволять себе пренебрежительные выпады в адрес устаревшего, тем более такого, о котором не имеешь розового понятия.


Seg   (2005-10-06 16:53:00) [7]

парадоксы, дибэйзы, изибэйзы и т.д. - не СУБД, а так, погулять вышли

По меркам 10-ти летней давности, это может быть и СУБД, хотя больше похожи на набор файлов для хранения данных.


msguns   (2005-10-06 16:31:00) [8]

>Seg   (06.10.05 16:21) [23]
>>СУБД, не располагающих возможностями ХП.
>Если нет Системы Управления - то это не СУБД, это просто База Данных

Надо понимать, что всякие там парадоксы, дибэйзы, изибэйзы и т.д. - не СУБД, а так, погулять вышли ибо ну нет у них ни триггеров, ни хранимых процедур, ни даже любимых тобою функций ?
Типа сама ОС разруливает базами.


Курдль   (2005-10-06 16:29:00) [9]


> Seg   (06.10.05 16:23) [24]
> Никакого. Пример для Курдля.


Спасибо, но я имел в виду "одним запросом" :)


> Seg   (06.10.05 13:56) [13]
> В Оракле можно попотеть и сделать одним запросом.


Лень было попотеть? :)


Seg   (2005-10-06 16:23:00) [10]

Кстати, а какое отношение вся эта красота имеет к сабжу-то ?

Никакого. Пример для Курдля.


Seg   (2005-10-06 16:21:00) [11]

А в целом меня не столько интересует решение данной траблы в текущем "библиотечном" проекте, как вообще проблема в СУБД, не располагающих возможностями ХП.

СУБД - Система Управления Базой Данных.
Если нет Системы Управления - то это не СУБД, это просто База Данных.


msguns   (2005-10-06 16:20:00) [12]

>Seg   (06.10.05 16:14) [21]

Ф-ция - это не совсем запрос, однако. Точнее, совсем не запрос, а скорее макрос.
Кстати, а какое отношение вся эта красота имеет к сабжу-то ? Где первым словом красным по светло-серому написано "Акцесс", т.е. СУБД БЕЗ ФУНКЦИХ И ХРАНИМЫХ ПРОЦЕДУР.


Seg   (2005-10-06 16:14:00) [13]

А нельзя ли пример, а то навскидочку что-то ничего на ум не приходит...

Конечно только одним запросом не обойтись, придется маленькую функцию написать.

Пример на тестовой базе SCOTT

текст функции:

create or replace function job_line
(
sjob in varchar2,
separator in varchar2)
return varchar2
is
 Result varchar2(1000);
 
 cursor cr1 is select t.ename from emp t where t.job=sjob;
begin
 
 for i in cr1 loop
     Result:=Result || i.ename || separator|| ' ';      
 end loop;
 
 Result:=substr(Result,1,length(Result)-2);
 return(Result);
end job_line;

текст запроса:
select t.job || ': '|| job_line(t.job,',')
from emp t
group by t.job || ': '|| job_line(t.job,',')

Результат:

1 ANALYST: SCOTT, FORD
2 CLERK: SMITH, ADAMS, JAMES, MILLER
3 MANAGER: JONES, BLAKE, CLARK
4 PRESIDENT: KING
5 SALESMAN: ALLEN, WARD, MARTIN, TURNER


msguns   (2005-10-06 16:05:00) [14]

>Danilka ©   (06.10.05 15:44) [19]
>А чего ты вообще пересел с mssql на access? :)

Я не пересел, я как бы на двух стульях ;)) Точнее, четырех. Еще ИБ и старые болячки на парадоксе.
"Це жыття, сынку" ;)))

>1. что мешает выбрать по третьей таблице только те книги, в которых есть >этот автор?

Речь в [10]  идет о том, что в самом каталоге хранятся не указатели на автором, а строка, где они перечислены скопом через запятую. Эту строку правит не юзер, а программа-клиент. Он лишь выбирает нужного из справочника. Поэтому третьей таблицы не надо (а ее уже и нет - мир ее праху !)

>2. как часто у авторов книг меняецца ФИО?

При первичном заведении БД не очень опытными девочками-с-длинными-ногами-умеющими-быстро-стучать-по-клаве ошибок будет море. И только когда библиотекарь Марьиванна начнет сурьезно работать с базой, она это увидит. И будет исправлять.
А в целом меня не столько интересует решение данной траблы в текущем "библиотечном" проекте, как вообще проблема в СУБД, не располагающих возможностями ХП.


Danilka   (2005-10-06 15:44:00) [15]

msguns ©   (06.10.05 15:37)
2. Если бы был сиквель-сервер, то


А чего ты вообще пересел с mssql на access? :)


- если после каждого изменения в справочнике Авторов по триггеру будет вызываться ХП, ищущая по всей базе в стринговом поле контекстно ФИО автора и менять весь стринг, вырезая, вставляя и компонуя строку заново, сколько по времени будет выполняться апдэйт одной лишь записи справочника ?
Даже в горячечном бреду не додумался бы до такого ;))


вах.
1. что мешает выбрать по третьей таблице только те книги, в которых есть этот автор?
2. как часто у авторов книг меняецца ФИО?
:)


Курдль   (2005-10-06 15:40:00) [16]


> msguns ©   (06.10.05 11:49)
> 1. Таблица изданий (GID,..)
> 2. Таблица авторов (AID,FIO)
> 3. Таблица авторов издания (ID,GID,AID)

А я вот думаю, зачем в 3. нужен ID? Ведь быть "дважды автором одной книги" как-то нелепо на мой взгляд :)


msguns   (2005-10-06 15:37:00) [17]

>Seg   (06.10.05 15:30) [15]
>А если подумать и дописать триггер на редактирование/удаление и в нем найти этого автора и изменить/удалить его?

Охохонюшки.. ;((

1. В ацесе появились триггеры ?
2. Если бы был сиквель-сервер, то
 - решается ХП, ну внимательнее читайте ответы, а ?
 - если после каждого изменения в справочнике Авторов по триггерубудет вызываться ХП, ищущая по всей базев стринговом поле контекстноФИО автора и менять весь стринг, вырезая, вставляя и компонуя строку заново, сколько по времени будет выполняться апдэйт одной лишь записи справочника ?
Даже в горячечном бреду не додумался бы до такого ;))


Курдль   (2005-10-06 15:33:00) [18]


> Seg   (06.10.05 13:56) [13]
> В Оракле можно попотеть и сделать одним запросом.


Одним запросом? Не скриптом и не процедурой?
А нельзя ли пример, а то навскидочку что-то ничего на ум не приходит...


Seg   (2005-10-06 15:30:00) [19]

Конечно, если узер выкинет автора из справочника или поменяет ему ФИО, он так и останется в своих книгах со старым именем.


А если подумать и дописать триггер на редактирование/удаление и в нем найти этого автора и изменить/удалить его?


msguns   (2005-10-06 15:21:00) [20]

>Seg   (06.10.05 13:56) [13]
>В Оракле можно попотеть и сделать одним запросом.

В скл-сервере можно запросто нарисовать ХП, которая легко это сделает ;)

>Если есть возможность модифицировать базу, то можно добавить в таблицу 3 еще одно поле, где хранить в одной строке всех авторов.

Именно этот способ и описан в [10], 2-й абзац ;) Только в основную таблицу (1)


Страницы:   1 2

Наверх

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