Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рекурсивная ф-я Access для вывода полного пути по названию / 8 сообщений из 8, страница 1 из 1
09.02.2016, 10:38
    #39166287
f50
f50
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Коллеги, поиском искал, нужного не заметил, а может пропустил, прошу помочь, есть ф-я для MSSQL, работает на ура, как надо, надо такую же на Access, наверняка есть она в природе, приведите тут её.

И второй вопрос, как её оформить в Access, сохранить как запрос, а как параметры передать?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE function [dbo].[ShowFullPathName](@id int) returns nvarchar(2000)
as
begin
 declare 
  @ret nvarchar(200),
  @rtid int
  select @ret=GoodName, @rtid=IdParentGood from dbo.Good where GoodRowid=@id
  if @rtid <> 0
   SET @ret=dbo.ShowFullPathName(@rtid)+' > '+@ret
 Return @ret
end



Заранее благодарю!
...
Рейтинг: 0 / 0
09.02.2016, 11:01
    #39166318
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Access не обрадуется рекурсивному запросу.
Реализуйте то же на VBA.
...
Рейтинг: 0 / 0
09.02.2016, 11:08
    #39166328
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Функция легко реализуется на VBA с использованием Recordset.

Не совсем понятен второй вопрос: зачем функцию сохранять как запрос? Созданную VBA функцию можно использовать в любом другом запросе (кроме Pass-Trough только)
...
Рейтинг: 0 / 0
09.02.2016, 11:14
    #39166336
f50
f50
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Да я из Delphi через ADOQuery юзаю результат выборки, вот в чём самая сложность...
В крайнем случае конечно могу средствами Delphi написать ф-ю, на клиенте все и сделаю, но вот с MSSQL очень удобно, так же на Access хотелось.
...
Рейтинг: 0 / 0
09.02.2016, 11:37
    #39166380
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Если данные тоже хранятся в Access - попробуйте подумать, а не целесообразно ли пойти на переопределение данных и хранить в таблице полный путь в дополнительном поле. Плюс, само собой, процедура валидации/пересчёта этого поля при несогласованных или пакетных изменениях данных.
...
Рейтинг: 0 / 0
09.02.2016, 11:56
    #39166418
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
В Акцессе нет хранимых процедур, так что аналог не получится сделать. Либо на клиенте считать, либо хранить в таблице. Также перечень доступных функций в SQL, которые не требуют подключения библиотек очень небольшой, ничего сложного не сделаешь.
...
Рейтинг: 0 / 0
09.02.2016, 12:52
    #39166505
dreindeimos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
Функция легко реализуется на VBA с использованием Recordset.
...
Рейтинг: 0 / 0
13.10.2016, 19:37
    #39326598
f50
f50
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсивная ф-я Access для вывода полного пути по названию
AkinaЕсли данные тоже хранятся в Access - попробуйте подумать, а не целесообразно ли пойти на переопределение данных и хранить в таблице полный путь в дополнительном поле. Плюс, само собой, процедура валидации/пересчёта этого поля при несогласованных или пакетных изменениях данных.
Вот это то что надо! Пришел к этому решению! Спасибо Akina !
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рекурсивная ф-я Access для вывода полного пути по названию / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]