powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прицепить временную таблицу к форме
17 сообщений из 17, страница 1 из 1
Прицепить временную таблицу к форме
    #32871794
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно ли как-нибудь сделать сабж в adp ?

P.S. имеется ввиду временная таблица сервака, т.е. #blablabla
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32871805
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что сделать ХП котороя будет вертать рекордсет созданный на основе времянки уже не судьба?
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32871835
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне надо создать набор данных на основе нескольких запросов,
потом его подредактировать и часть записать в некую таблицу.

и можно поподробнее как редактировать результаты ХП ...
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32871869
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha_1мне надо создать набор данных на основе нескольких запросов,
потом его подредактировать и часть записать в некую таблицу.

и можно поподробнее как редактировать результаты ХП ...
Если результат ХП на основе времянки, которая, в ней и удаляется (явно или неявно), то о редактировании из формы речь уже не идет :(

Можно конечно сделать псево-временную таблу (т.е. постоянную, но с временными данными), в это табле разделять записи по юзверькам, чтобы в клинчь не входили и уже с ней робить
Многократно проверенный метод, не чем не хуже, чем любой другой!
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32871914
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome:
про постоянную таблицу я в курсе. сам пользуюсь.

хочется узнать про временные.
или просто еще какой-нибудь способ изменения данных получаемых из ХП.
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32871915
GEORGE2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно.
Примерно так :

CurrentProject.Connection.Execute ("create table dbo.#TABLE1 (id int primary key)")

Me.RecordSource = "dbo.#TABLE1"

Нужно еще дать права на tempdb.
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32872451
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GEORGE2004Можно.
Примерно так :

CurrentProject.Connection.Execute ("create table dbo.#TABLE1 (id int primary key)")

Me.RecordSource = "dbo.#TABLE1"

Нужно еще дать права на tempdb.

Плод больного воображения?

Me.RecordSource = "dbo.MyCoolProcedure"

на сервере
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE dbo.MyCoolProcedure
as
  SET NOCOUNT ON
  create table #TABLE1 (<поля>)

  INSERT #TABLE1 (<поля>)
  select <поля> FROM <откуда надо>

  INSERT #TABLE1 (<поля>)
  select <поля> FROM <откуда надо2>

  INSERT #TABLE1 (<поля>)
  select <поля> FROM <откуда надо3>
  
  select * FROM #TABLE1
return
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32872484
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha_1а можно ли как-нибудь сделать сабж в adp ?

P.S. имеется ввиду временная таблица сервака, т.е. #blablabla

Зачем? Создай нормальную таблицу, сделай в ней поле SessionID, при создании в ней записей пиши туда @@SPID, а в форме сделай фильтр по SessionID=@@SPID. Так каждый пользователь будет иметь "свою" временную таблицу (при закрытии формы - DELETE table WHERE SessionID=@@SPID)
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32872694
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда есть польза от ОТДЕЛЬНОЙ таблицы.
Общая может быть заблокирована пользователем при обновлении и все остальные отдохнут...
Читай про

Lock Escalation
Lock escalation is the process of converting many fine-grain locks into fewer coarse-grain locks, reducing system overhead. Microsoft® SQL Server™ 2000 automatically escalates row locks and page locks into table locks when a transaction exceeds its escalation threshold.

For example, when a transaction requests rows from a table, SQL Server automatically acquires locks on those rows affected and places higher-level intent locks on the pages and table, or index, which contain those rows. When the number of locks held by the transaction exceeds its threshold, SQL Server attempts to change the intent lock on the table to a stronger lock (for example, an intent exclusive (IX) would change to an exclusive (X) lock). After acquiring the stronger lock, all page and row level locks held by the transaction on the table are released, reducing lock overhead.

SQL Server may choose to do both row and page locking for the same query, for example, placing page locks on the index (if enough contiguous keys in a nonclustered index node are selected to satisfy the query) and row locks on the data. This reduces the likelihood that lock escalation will be necessary.

Lock escalation thresholds are determined dynamically by SQL Server and do not require configuration.
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32873266
GEORGE2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2aleks . Работать будет ? А как будете сохранять результат редактирования ?
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32873577
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GEORGE20042aleks . Работать будет ? А как будете сохранять результат редактирования ?

А про сохранение вопроса не было...
Вестимо ручками в событии формы AfterUpdate. Триггера на временных таблицах тоже не запрещены... но нахрен такое счастье надо.
-------------
Вообще-то так не делают. Обычно #tmptable используют в связке c нормальной таблицей базы table в inner join. И назначаем в форме table - Однозначной таблицей. После чего ручками шевелить не надо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE dbo.MyCoolProcedure
as
  SET NOCOUNT ON
  create table #TABLE1 (<поля>)

--  Типа заполняем #tmptable чем-то нужным, чем просто в запросе не заполнишь
  INSERT #TABLE1 (<поля>)
  select <поля> FROM <откуда надо>

  INSERT #TABLE1 (<поля>)
  select <поля> FROM <откуда надо2>

  select * FROM dbo.TABLE X INNER JOIN #TABLE1 Y ON X.ID=Y.ID
return
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874243
GEORGE2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слишком сложно и не понятно, как вообще может работать.
Вариант с созданием временной таблицы на CurrentProject.Connection
довольно удобный и можно редактировать таблицу прямо в форме .
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874278
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GEORGE2004Слишком сложно и не понятно, как вообще может работать.
Вариант с созданием временной таблицы на CurrentProject.Connection
довольно удобный и можно редактировать таблицу прямо в форме .

Редактировать можно и здесь. А сохранять? Все равно ручками?
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874291
ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ы
Гость
/topic/116502
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874625
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GEORGE2004CurrentProject.Connection.Execute ("create table dbo.#TABLE1 (id int primary key)")
Me.RecordSource = "dbo.#TABLE1"

всё это конечно хорошо, но у меня данные берутся из хранимки.
переписывать всю хранимку в коде формы с вызовами поочереди всех её операторов не покатит. А так мне возвращается результат, который (есесьно)нельзя редактировать. Над этим и бьюсь. Видимо придется по старинке сделать разделяемую постоянную таблицу.
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874698
GEORGE2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CurrentProject.Connection.Execute ("create table dbo.#TABLE1 (id int primary key, ...)")

CurrentProject.Connection.Execute ("INSERT INTO dbo.#TABLE1 EXEC SP_XXX")

Me.RecordSource = "dbo.#TABLE1"

сохраняем

CurrentProject.Connection.Execute ("INSERT dbo.TABLE SELECT * FROM dbo.#TABLE1")
...
Рейтинг: 0 / 0
Прицепить временную таблицу к форме
    #32874761
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GEORGE2004:
ГЫ!
пасибо огромное, то что надо.

p.s. а я и не знал, что инсертить можно прямо екзек
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прицепить временную таблицу к форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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