Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возможно ли из программы открыть временную таблицу для редактирования? Со стандартными компонентами не получается %( [D3, MSSQL 6.5]


Nest ©   (2001-12-17 11:15:00) 

(например #tmp),чтоб юзер мог её поправить через ДБГрид.стандартные датасеты ругаются:
TTable при попытке открыть таблицу #tmp пишет "Invalid Table name"
а TQuery("SELECT * FROM #tmp") выбирает, но только в реадонли.
Если ставишь RequestLive=TRUE, то будет ошибка "Invalid use of keyword FROM"
1.Может кто сталкивался и нашёл выход? Помогите.
2.Есть "левые" компоненты без этого бага?


Nest   (2001-12-17 14:23:00) [1]

Спасибо. Это меня должно спасти.


Delirium   (2001-12-17 14:07:00) [2]

Это то-же самое что и #table только создаёшь с двумя ##, такая таблица "живёт" для всех юзеров и сессий, пока к ней кто-нибудь обращается.


Nest   (2001-12-17 14:04:00) [3]

2Delirium ©
Если можно, поподробнее?


Delirium   (2001-12-17 13:59:00) [4]

Сообразил, как сделать: бывают же глобальные - временные таблицы!
Типа ##table !


Boo   (2001-12-17 13:15:00) [5]

>Nest
Про RXMemoryData ты не прав, я его всегда юзаю, когда надо иметь временную таблицу (проще и никаких прав не надо...), нуно только следить, чтоб записей в ней было немного, а то разоришся на мозгах :-)


Delirium   (2001-12-17 13:09:00) [6]

Попробуй разобраться с SESSION_USER в MSSQL, я сам не пробывал, так что если что получится сообщи - буду благодарен.


Nest   (2001-12-17 12:39:00) [7]

2Delirium ©
Не у всех пользователей есть права на создание обычных таблиц.
А ввод данных осуществляется через промежуточные табл.


Delirium   (2001-12-17 12:32:00) [8]

Что-то я сомневаюсь, что с MSSQL dataset.session прокатит. Я думаю, что если запрос он и возвращает, то MSSQL-ная сессия закрывается сразу после этого. По этому и RequestLive не активируется, наверное. А, почему бы постоянные таблицы не использовать?


Nest   (2001-12-17 11:55:00) [9]

2Delirium ©
Да знаю...
Потому и указываю свойство dataset.session явно.
Дело не в том что запрос не вибирает - он вибирает.
Но мне нужно чтоб вернулся RequestLive-dataset.


Nest   (2001-12-17 11:40:00) [10]

TQuery, если поставить CashUpdate:=true - чего-то не получается.

А RXMemoryData - на первый взгляд вообще геморрой...

Так у тебя так и не получилось или как стал делать?


Delirium   (2001-12-17 11:36:00) [11]

Дело в том, что временные таблицы в MSSQL существуют и автоматически уничтожаются в составе одной сесси, а Query или ADOQuery при исполнении запроса - создают новую сессию и обращаться к временным таблицам в них можно только если они там-же и были созданы:

select * into #Temp from Table1
select * from #Temp


Boo   (2001-12-17 11:21:00) [12]

Есть RXMemoryData, но памяти жреть как собака...
Моно через TQuery, если поставить CashUpdate:=true (вроде), но енто у меня глючило при зонесении изменений в базу (TUpdateSQL)


Наверх

Титульная страница Поиск, карта сайта Написать письмо