Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Вниз

Временные таблицы в MSSql Server 2000   Найти похожие ветки 

 
gsvserg   (2004-01-20 13:40) [0]

Всем привет! Вопрос такой. Нужно сделать так, чтобы у пользователя была возможность отменить внесенные изменения в таблице. Т.е. все изменения производить во временной таблице, а при сохранении заменять данные. Пытался создавать временные таблицы на сервере
select * into #table_name1 from table_name
select * from #table_name

, но при добавлении новой записи с помощью
insert into #table_name...
выдается сообщение об ошибке "Invalid object name #table_name".
Кто-нибудь может объяснить как это делается. Или есть друе решения?


 
Delirium   (2004-01-20 13:45) [1]

Надо insert делать на том-же Connection-е, на котором таблицы создавал.


 
gsvserg   (2004-01-20 13:46) [2]

Delirium © (20.01.04 13:45) [1]
У меня один Connect на всю программу.


 
Delirium   (2004-01-20 13:48) [3]

Если у тебя один и тот-же Connection, а таблицы пропадают, значит ты его где-то прерываешь, ничего друго-го быть не может.


 
Ega23   (2004-01-20 13:56) [4]

Делай тогда не #table_name1, а ##table_name1.
Только дропнуть не забудь.


 
gsvserg   (2004-01-20 13:58) [5]

Перед инсертом ставлю breakpoint и смотрю process info в SQLSERVER - connect присутствует.


 
sniknik   (2004-01-20 14:03) [6]

смотри в TADOConnection.Active, и самое главное чтобы оно ни разу от первой команды до второй в false не вставало (при трассировке смотри).


 
ZrenBy   (2004-01-20 14:15) [7]

>>Т.е. все изменения производить во временной таблице

А ты на клиенте меняй, отменяй, меняй, отменяй,
добавляй, удаляй, добавляй, удаляй, ...

А потом на сервак скопом лей.


 
gsvserg   (2004-01-20 14:16) [8]

Ega23 © (20.01.04 13:56) [4]
Спасибо, проходит. Так и буду делать.
sniknik © (20.01.04 14:03) [6]
Ты имеешь ввиду TAdoconnection.connected=true?
Проверял, всегда true.


 
gsvserg   (2004-01-20 14:17) [9]

ZrenBy © (20.01.04 14:15) [7]
Я бы с удовольствием, только как?


 
sniknik   (2004-01-20 14:30) [10]

всетаки гдето у тебя конект обрывается, может обрашения есть к другой базе, к master к примеру, тогда это на уровне сервера происходит (можно посмотреть в профайлере), а так как временная таблица локальная то смена базы равна разрыву коннекта.
вот проверь так (всю пачку в один ADODataSet) сработает, нет других комманд между, действий никаких и следовательно сработает

SELECT * into #table_name FROM table_name
INSERT INTO #table_name (Name) VALUES ("jkhj1234khlhjkhkj")
select * from #table_name


 
stone   (2004-01-20 14:30) [11]


> gsvserg ©

А разве управление транзакциями не дает возможности отмены изменений?

имхо, временные таблицы тут явно лишние...


 
ZrenBy   (2004-01-20 14:38) [12]

>>Я бы с удовольствием, только как?

TClientDataSet

или

TADODataSet с ltBatchOptimistic

потом набор данных в виде XML посылается на сервер
и в одной транзакции удаленные удаляются, добавленные добавляются,
измененные изменяются.


 
gsvserg   (2004-01-20 16:55) [13]

ZrenBy © (20.01.04 14:38) [12]
Оказывается все просто UpdateBatch() и CancelBatch().

sniknik © (20.01.04 14:30) [10]
Извени, не проверял. То что подсказал ZrenBy мне подходит.

ВСЕМ СПАСИБО!!!


 
Delirium   (2004-01-20 18:29) [14]

> "Делай тогда не #table_name1, а ##table_name1"
- если действительно один Connection, то и сессия на MSSQL - одна и взаимодействующий пользователь - один, а следовательно нет никакой необходимости предостовлять временные таблицы на всеобщее обозрение, да ещё и заботиться об уникальности названий таблиц. Куда как грамотнее всё-таки найти ошибку у себя в коде.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-29337
EMIL
2004-01-29 16:03
2004.02.10
TreeView копировать узелок


14-29600
gvt
2004-01-19 15:48
2004.02.10
Есть вакансия системного администратора в СПб со знанием DELPHI?


14-29560
ra3d
2004-01-13 20:31
2004.02.10
Кому нибудь понравился фильм


6-29490
loki128
2003-12-08 20:58
2004.02.10
Доступ к файлам


1-29437
Yarcev
2004-01-30 12:55
2004.02.10
Отчеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский