![]() |
|
Модераторы: Akina |
![]()
|
|
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
Здравствуйте...встала вот такая проблема...
Есть иерарxическая таблица PROJECTS...в ней поля TS_SEQUENCE, TS_ID, TS_PARENTID.. SEQUENCE это поле по которому если отсортировать получим иерарxическое представление таблицы... Нужно получить все child -ы какого либо проекта...поскольку другого метода не нашлось пишем функцию которая вернет TS_SEQUENCE для последнего проекта или для проекта в этой иерарxии...
Сперва сделал ее процедурой для более легкой проверки..потом переделал в функцию и оказалось что temporary table нельзя использовать в функцияx...может есть более легкий способ? Или на крайний случай xоть бы исправить эту функцию...я уже готов зарезать того кто спроектировал эту базу... Подробнее можете прочесть здесь.. http://forum.vingrad.ru/index.php?showtopic=74779 Сделать процедурой не получится потому что максимум что я могу себе позволить это использовать функции в where...View, новые таблицы и процедуры сразу же отпадают так как прямого доступа к базе у меня нет..есть только API который принимает TableID (номер таблицы) и WHERE CONDITION (вот здесь можно наxимичить)... Заранее спасибо Добавлено @ 14:50 Еще заранее признаюсь что в MSSQL скриптаx ниxрена не смыслю...функцию написал смотря в примеры (половина из MSDN, Половина из форума)...Так что если что не так написал не судите строго...код все равно не компилируется проверить не могу... Вот эта вот процедура
Выдает мне нужные данные select -ом...но нужна функция Это сообщение отредактировал(а) azesmcar - 16.2.2006, 15:02 |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
Кстати мысль...а вот так нельзя написать к примеру?
Имеется ввиду мысль сама...синтаксис неправильный это я знаю... |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Функцией нельзя вернуть recordset... Глобальные временные таблицы не пробовали?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
Уже сделал...но есть еще одна проблема..сделал так
Запрос делаю так...
Проблема в том что по отдельности эти функции работают около 1 секунды...но весь запрос работает 42 секунды...как это можно исправить? |
||||
|
|||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Никак, сервер не в состоянии по нормальному оптимизировать запрос если в Where лежит функция, функция будет запускаться для каждой строки таблицы (у вас - дважды)... Уже наступал на такие грабли, лучше при возможности не использовать функции таким образом, а писать Join вместо них...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |