powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с temporary tables
5 сообщений из 5, страница 1 из 1
Помогите с temporary tables
    #32070095
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал STORED PROCEDURE, которая возвращает набор, полученный из временной таблицы.

Примерно такая:
CREATE PROCEDURE SomeProcedure
AS
SET NOCOUNT ON
SELECT * INTO #Temp FROM SomeTable
SELECT * FROM #Temp
GO

В Access XP создаю форму, где источником является данная процедура. Форма запускается, но при попытке фильтрации или сортировки выдается ошибка типа "Invalid object name #Temp", но после неё сортировка(или фильтрация) происходит.
Подскажите, пожалуйста, что можно сделать, чтобы сообщение об ошибке не вылазило (причем в Access 2000 такого нет, даже пробовал разные версии ADO:2.1 и 2.7 - эффект прежний).
Заранее благодарен
...
Рейтинг: 0 / 0
Помогите с temporary tables
    #32070112
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала попробуй заменить звездочку списком полей. Также убедись, что курсор - клиентсткий. Указанная ошибка возникает при получении приложением описания полей предварительным запуском процедуры с опцией SET FMTONLY ON. Надо добиться от приложения такого поведения, чтобы метаданные получались вместе с набором данных без всякого SET FMTONLY.
...
Рейтинг: 0 / 0
Помогите с temporary tables
    #32070161
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без звездочки (со списком полей) ничего не изменилось, курсор - клиентский. С FMTONLY тоже что-то не получается
...
Рейтинг: 0 / 0
Помогите с temporary tables
    #32070197
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access сам не умеет сортировать записи. Он просто передает соответствующую команду на SQL сервер. Поскольку последняя выборка была из таблицы #Tmp, то и команда на SQL сервер бутет примерно такая:
Код: plaintext
1.
2.
Select field1, field2, ..., fieldN
From #Tmp
Order by field2  /* если сортировка по field2 */ 

А поскольку все временные объекты находятся в базе tempdb, а по выходе из процедуры временные таблицы созданные в ней автоматически уничтожаются, то вот он и ругается на отсутсвие таблицы #Tmp.
...
Рейтинг: 0 / 0
Помогите с temporary tables
    #32070205
Fedot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему тогда сортировка в конце-концов происходит? И почему в 2000 аксесе все проходит без глюков, ведь процедура одна и та же используется в обоих случаях?

Кстати, я подобные разногласия (при сортировке и фильтрации) в Access XP и в Access 2000 уже встречал, но в тех случаях процедура возвращала набор из обычных таблиц(объектов рабочей базы). Причем результат изменялся с методом получения источника данных формой.
Напр.:
1) передача параметров процедуры через InputParameters, а имя процедуры в RecordSourse
2) передача параметров процедуры вместе с именем процедуры через RecordSourse
3) сформировать свой Recordset, а потом Set Me.Recordset = rstMy
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с temporary tables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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