Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Народ, всем привет! Как просмотреть содержимое временной таблицы, созданной в коде проекта ADP? Т.е. выглядит она там так: #имя... Как через штатные средства просмотреть её содержимое? Как просмотреть её в SSMS менеджере? Access 2010. Всех с новым годом! Между первой и второй промежуток небольшой! )) У меня промежуток между использованием легендарного софтверного продукта, прошу строго не судить.
============================================================================================================
"О, сколько нам открытий чудных готовит просвещения дух, и опыт - сын ошибок трудных, и гений - парадоксов друг, и случай - бог изобретатель" (Пушкин, однако).
2 янв 20, 18:03    [22052889]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Кажется, сложный вопрос задал... в новый год ))
5 янв 20, 16:51    [22053774]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
vmag
Member

Откуда: MP
Сообщений: 3457
dab2,

Ну наверно лучше создать заранее постоянную таблицу с нормальным именем типа tmp и использовать ее как временную: почистил, залил, отработал и так в цикле...
5 янв 20, 23:03    [22053869]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
vmag
dab2,

Ну наверно лучше создать заранее постоянную таблицу с нормальным именем типа tmp и использовать ее как временную: почистил, залил, отработал и так в цикле...
В том-то и дело, что уже создано, надо править тем, что есть )
6 янв 20, 02:15    [22053925]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
UP
7 янв 20, 14:57    [22054474]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
MrShin
Member

Откуда:
Сообщений: 1293
Временная таблица видна только в той же сессии, которая ее создала, поэтому ее не увидишь из другой сессии и работать с такими таблицами довольно тяжело. Для отладки можно копировать содержимое временной таблицы в постоянную, а вот как смотреть ее содержимое на постоянной основе, затрудняюсь ответить, это вопрос для MS SQL форума, пишите туда.
7 янв 20, 18:15    [22054592]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Это прямо откровение! Все перевелись уже ADP-шники, кто работает с временными таблицами? Вопрос для Access платформы в первую очередь всё же. Опыт - сын ошибок трудных, отзовись! ))
9 янв 20, 11:39    [22055436]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
court
Member

Откуда:
Сообщений: 1931
dab2
Как просмотреть содержимое временной таблицы, созданной в коде проекта ADP?

открыть на этой времянке рекордсет и выгрузить его в Эксель
dab2
Как через штатные средства просмотреть её содержимое?

открыть на этой времянке рекордсет и присвоить его форме.
Но это будет более "уныло" чем в Эксель, так как для контролов формы придётся всё время прописывать поле-источник + проблема с кол-вом контролов на форме ...
Можно рекордсет присвоить контролу-список, создав, предварительно, нужное к-во полей
ещё вариант, вывести в какой-нибудь АктивХ грид, типа hflexgrid - он сам, по рекорсету-источнику, умеет создавать нужно к-во полей в гриде
dab2
Как просмотреть её в SSMS менеджере?
временная таблица видна только в том коннекте, в котором она создана
Так что, имхо, никак
(если, конечно, это не глобальная временная ##table)

Сообщение было отредактировано: 9 янв 20, 12:00
9 янв 20, 11:59    [22055450]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
vmag
Member

Откуда: MP
Сообщений: 3457
dab2
Это прямо откровение!


Если нет доступа к исходникам, то и не зачем народ теребить...
Если есть, то тем более, - пару строк кода и таблица превращается в нормальную...
9 янв 20, 14:47    [22055634]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
В коде куча временных таблиц, нужен механизм быстрого просмотра оных. Наверняка есть у кого-то.
9 янв 20, 18:18    [22055847]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
court
Member

Откуда:
Сообщений: 1931
Это всё вообще для чего ? Для отладки ?
dab2
В коде куча временных таблиц, нужен механизм быстрого просмотра оных. Наверняка есть у кого-то.

дык, мало "дурных" такое делать в коде ВБА :)
Обычно это всё оформляется хранимой процедурой, и уже её и отлаживают в студии, с выводом содержимого времянок на время отладки ...

Как вариант, можешь создать у себя такие ХП для тестирования, под каждую времянку
create proc dbo.tmp_t 
as
select * from #t 

и тогда, при отладке в ВБА, сможешь переключаться в окно БД и смотреть времянки через эти ХП
(но только из Акцесса и там где была создана времянка, - из студии (т.е. из другого конекта) ХП будет давать ошибку)
9 янв 20, 19:05    [22055883]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
court,
автор
ещё вариант, вывести в какой-нибудь АктивХ грид, типа hflexgrid - он сам, по рекорсету-источнику, умеет создавать нужно к-во полей в гриде

Есть ссылка на источник? Хотя желательно, чтобы АктивХ уже в винде был.

Начал ваять просмотрщик на основе формы, но м.б. у кого-то есть готовый вариант?
10 янв 20, 12:35    [22056336]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
автор
(но только из Акцесса и там где была создана времянка, - из студии (т.е. из другого конекта) ХП будет давать ошибку)
А хотелось бы из Access! Ну такое желание ))
10 янв 20, 12:37    [22056339]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
court
Member

Откуда:
Сообщений: 1931
dab2
автор
(но только из Акцесса и там где была создана времянка, - из студии (т.е. из другого конекта) ХП будет давать ошибку)
А хотелось бы из Access! Ну такое желание ))
там и написано, что
1
способ будет работать только из Акцесса и там где была создана времянка
2
и НЕ будет работать, из любого другого коннекта ! Будь то SSMS, другой запуск Акс-а или ещё, что угодно другое
10 янв 20, 13:19    [22056394]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
court,

сделал ХП, но не работает для временных #Таблиц:
"Источник записей ХП, указанный в форме или отчете, не существует."

Если поставить в эту ХП просто таблицу, всё работает...
10 янв 20, 15:33    [22056587]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
up
10 янв 20, 17:02    [22056677]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
court
Member

Откуда:
Сообщений: 1931
dab2
сделал ХП, но не работает для временных #Таблиц:
"Источник записей ХП, указанный в форме или отчете, не существует."

Времянка, на момент вызова/открытия ХП уже создана ?
Коннект в котором она создается - это коннект проекта ? Случаем, не открытый "с нуля" ?
Начинай уже код показывать

Сообщение было отредактировано: 10 янв 20, 18:11
10 янв 20, 18:11    [22056727]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Самый "быстрый" способ получить содержимое временных #Таблиц через создание в конструкторе хранимой процедуры запроса вида:
CREATE PROCEDURE "_View0NameOfTable"
AS
SELECT      *
FROM          NameDB.dbo.[#NameOfTable]

Название начинается с подчеркивания исключительно для удобства просмотра в списке процедур - будет сверху списка.
Её надо выполнить, нажав на "!" и (м.б. только у меня) при этом появляется сообщение, что такая процедура не найдена, но она уже создана и находится в списке хранимок окна БД Access, поэтому после закрытия окна конструктора хранимой процедуры повторное открытие запускает эту хранимку и вы смотрите содержимое временной таблицы сеанса клиента Access. Другие ухищрения видимо сложнее.
Просто представлением Access просмотреть временную таблицу не даст, сообщив об этой "радости".
23 янв 20, 17:54    [22065432]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Ещё добавлю, что если пробовать просмотреть временную таблицу, которая создана в коде сеанса Access в SSMS, то там это не получится, даже если создана одноименная временная таблица - это разные объекты в разных сеансах. Поэтому "сценарии" работы группы запросов приходится моделировать целиком в студии при отладке. Надеюсь, кому-то пригодятся эти пояснения.
23 янв 20, 18:06    [22065444]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Ещё добавлю, что после удаления временной таблицы запуск хранимки на просмотр даст сообщение "Имя базы данных "такой-то" пропущено, обращение к объекту в Tempdb". Но это не точная диагностика или кривой перевод, не знаю. Текст хранимки не менялся, естественно, просто вашей таблицы больше нет, она удалена ))
23 янв 20, 18:12    [22065449]     Ответить | Цитировать Сообщить модератору
 Re: содержимое временной таблицы, созданной в коде  [new]
dab2
Member

Откуда: Воронеж
Сообщений: 763
Ну и в качестве "альтернативы" студии SSMS можно запускать запросы на выполнение в окне отладки (Ctrl-G) VBA типа
CurrentProject.connection.execute "Drop table #Table"
для хранимок
CurrentProject.connection.execute "EXEC dbname.dbo.sp_rocedureName p1,p2"
и т.п. Только выполнять код (Enter) придется на каждой строке редактора отладчика. Для переноса строк без выполнения Ctrl-Enter.
23 янв 20, 18:46    [22065470]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить