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

Вниз

Зависание программы при редактировании таблицы базы   Найти похожие ветки 

 
r9000   (2004-06-10 11:58) [0]

Добрый день!
Можно спросить? Использую транзакции когда одна копия программы, редактирует данные таблицы скажем  выбранные по одному полю и другая копия программы пытается отобразить эти данные то эта копия программы виснет. Из-за чего это возникает? Что делать, чтобы это устранить?


 
asp ©   (2004-06-10 12:04) [1]

Не стартовать транзакцию при редактировании записи. Сбрасывай данные на сервер после.


 
sniknik ©   (2004-06-10 12:18) [2]

изза транзакции естественно и изза того что используется "подтвержденное чтение".

устранять это лучше не надо(хотя и можно), логику программы лучше поменяй.


 
r9000   (2004-06-10 12:18) [3]

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


 
sniknik ©   (2004-06-10 12:27) [4]

по логике клиент должен - считать данные, отключится, долго долго их обрабатывать/редактировать, подключится и быстро быстро записать изменения вот это уже можно в транзакции, да и то если данные связаны и должны быть положены одним куском или не положены вообще а частичные приведут с сбою.

я бы к примеру предпочел чтобы у меня хоть часть накладной сохранилась (допустим 3 часа набивал) при сбое чем вообще ничего, только изза того что комуто захотелось поиграть в транзакции ничего в них не понимая.


 
r9000   (2004-06-10 13:09) [5]

А как <долго долго их обрабатывать/редактировать> данные не сбрасывая изменения в таблицу без использования транзакций или копонента TUpdateSQL(неужели для этого надо создавать локальные таблицы сбрасывать в них данные, редактировать, а потом обратно)? Мне необходимо положить данные одним куском, либо отменить изменения компонент TUpdateSQL использовать не хочется.


 
Курдль ©   (2004-06-10 13:14) [6]


> Что делать, чтобы это устранить?

Выбрать другую СУБД :)


 
asp ©   (2004-06-10 13:28) [7]

r9000   (10.06.04 13:09) [5]>
> компонент TUpdateSQL использовать не хочется
Причины?


 
Курдль ©   (2004-06-10 13:29) [8]

Если не подойдет - почитайте мои прошлые посты про транзакции.
Используйте лучше это слово в досужих разговорах для повышения собственной значимости. В программах воздерживайтесь, пока не припечет!
Если Вы умеете использовать TUpdateSQL, то сам Бог велел включить CashedUpdates, а запись в базу утверждайть методом
DataBase.ApplyUpdates([DataSet]).
Он сам откроет транзакцию на короткий момент записи изменений в БД, утвердит ее в случае успеха или откатит в случае ошибки.


 
bushmen ©   (2004-06-10 13:45) [9]

> Курдль ©   (10.06.04 13:29) [8]

Тут речь идет совсем о другом. У него не проблема с сохранением цепочек данных.


 
Курдль ©   (2004-06-10 14:19) [10]

Ok!

DataBase.ApplyUpdates([DataSet1, DataSet2, DataSet3]);


или


try DataBase.BeginTransaction;
 Ouery1.ExecSQL; //с запросом на INSERT, UPDATE или DELETE
 Ouery2.ExecSQL; //с запросом на INSERT, UPDATE или DELETE
 Ouery3.ExecSQL; //с запросом на INSERT, UPDATE или DELETE
 DataBase.CommitTransaction;
except
 DataBase.RollbackTransaction;
end;


 
bushmen ©   (2004-06-10 14:41) [11]

>DataBase.ApplyUpdates([DataSet1, DataSet2, DataSet3]);

Да нету там DataSet2, DataSet3. Читай вопрос. У него имеется один DataSet.


 
Курдль ©   (2004-06-10 14:49) [12]

Тогда я в растерянности, как сделать для MS SQL программу, где можно открыть транзакцию с утра, весь день, ковыряясь в носу, править данные в режиме прямых изменений, закрыть транзакцию вечером и при этом чтобы другие пользователи не висли.


 
r9000   (2004-06-10 14:52) [13]

И я тоже в растерянности


 
Курдль ©   (2004-06-10 14:54) [14]

Так чем не нравятся кэшированные изменения? (Уверяю, что это ничуть не хуже временных таблиц).


 
r9000   (2004-06-14 07:19) [15]

Почему не совсем хочется использовать компонент TUpdateSQL?Потому что если он настроен для работы через ODBC-драйвера в BDE, а не через драйвера SQL Servera в BDE, то если в таблицу с
компонентом TUpdateSQL при редактировании вставляются не все в строку редактирования данные потом сохраняются, и при попытке довставить в эту строку данные и сохранить не хотят сохранятся данные,при использовании драйверов SQL Servera в BDE этого не происходит, т.е. все нормально(это проверено на практике).Полбзователи частенько не вписывают все данные. А так как не я выбираю, какие драйвера использовать, то поэтому не очень хочется использовать компонент TUpdateSQL.


 
sniknik ©   (2004-06-14 09:41) [16]

UpdateSQL это всего лиш механизм для облегчения изменений кешированных данных, не нравится этот используй другой. можеш сам придумать.

Курдль ©   (10.06.04 14:49) [12]
> Тогда я в растерянности, как сделать для MS SQL программу, где можно открыть транзакцию с утра, весь день, ковыряясь в носу,
> править данные в режиме прямых изменений, закрыть транзакцию вечером и при этом чтобы другие пользователи не висли.
надеюсь ты этого делать не будеш, или хотябы чтобы мне с твоими творениями сталкиватся не придется. ;о)
а сделать можно, ставить уровень изоляции транзакции "грязное чтение" или обращатся запросами с with(nolock) на случай если попадеш на открытую транзакцию.
но это мало того что неправильно но добавит тебе еще много проблем решив всего одну сомнительную. тем более тут мне кажется транзакция не нужна вовсе (датасет один(??) какие связки тогда боимся потерять?).



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

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

Наверх





Память: 0.49 MB
Время: 0.035 c
1-1088062573
Del_programmer
2004-06-24 11:36
2004.07.11
Регистрация проги


8-1082697515
Gia Gvatua
2004-04-23 09:18
2004.07.11
Картография


1-1087807137
MetalFan
2004-06-21 12:38
2004.07.11
GetPropInfo...


1-1087979722
Aldor
2004-06-23 12:35
2004.07.11
103, 105 I/O error


8-1082913821
Keen
2004-04-25 21:23
2004.07.11
Снятие картинки с TPanel...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский