![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможно ли из программы открыть временную таблицу для редактирования? Со стандартными компонентами не получается %( [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)