powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто знает в чем может быть дело ?
10 сообщений из 10, страница 1 из 1
Кто знает в чем может быть дело ?
    #32023690
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь написать "умную" SP такого вида

ALTER PROCEDURE sp_XML_Test
(
@View int
)
AS
If @View=1
SELECT * From ppcIndex
If @View=2
Select * From Class
RETURN

Работаю в MSAccess XP. ADO 2.6

При первом запуске с параметром 1 получаю набор записей из первой таблицы ppcIndex.
При запуске с параметром 2 - получаю набор полей из первой таблицы с данными из второй либо с #Error. И наоборот. Если после изменения и сохранения SP запустить с параметром - 2, вижу данные второй таблицы. А потом с параметром 1 - наложение данных из первой таблицы на структуру второй.
В QA все работает нормально.
В MSAccess такая вот фигня.
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023700
CruxMortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alter procedure , кажется, не перекомпилит процедуру. делай drop / create
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023702
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятен смысл процедуры. Во первых зачем два условия, если в @View однозначно передается 1 или 2 ? Может легче написать

if @View = 1
select * from ppcIndex
else
select * from Class

Во вторых - у таблиц ppcIndex и Class структура одинаковая ?
В третьих - где именно в Access используется эта ХП - в VBA через ADO компоненту или прямо из списка ХП ?
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023703
Владимир Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть такая гипотеза.
MSAccess, будучи также "умной" системой, поступает следующим образом:
При первом открытии таблицы, вьюшки или процедуры по возвращаемому рекордсету определяет состав полей - порядок, имена, типы и т.д. На основе этих данных строит табличную форму для отображения и запоминает её. При повторном открытии того-же объекта пытается использовать имеющуюся форму. Если объект был изменён, то перестраивает.
Но в случае "умной" процедуры, изменяющей состав рекордсета в зависимости от параметров, сама процедура не меняется. Вот Access и путается - только-что эта процедура выдала рекордсет с одной структурой, а теперь уже с другой.

Наверное лучше избегать неоднозначности и создавать процедуры, которые всегда возвращают однозначно определённую структуру.
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023706
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
>Не понятен смысл процедуры.

Ну это очень упрощенно только для примера. Моя процедура на самом деле достает сохраненный в поле таблицы отчет в виде XML и возвращает в зависимости от параметра либо заголовок (один вид таблицы), либо тело отчета, либо подотчеты (их 5 штук). Вернее все бы это она делала, если бы не было этих граблей. Естественно структуры результатов совсем совсем разные.

2Владимир Смирнов

Мда, очень похоже на такое "горе от ума"
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023711
Фотография RatTail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы, видимо, прикалываетесь, таварышы!
Проверил. В MS Access 2000 все чудесно работает!
Может приставка XP виновата?
А спрашивается, чем Вас не удовлетворял Access 2000?
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023715
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверял в Access 2000 - таже песня.
MSSQL2000/SP2. А XP удобнее в разработке SP и UDF
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023720
Фотография RatTail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, у меня MS SQL SERVER 7.0
причем, без сервис паков.
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023785
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загадочные какие-то траблы... Но попробуй сохранить процедуру с опцией with (Recompile). Может поможет...
...
Рейтинг: 0 / 0
Кто знает в чем может быть дело ?
    #32023791
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогло.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто знает в чем может быть дело ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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