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

Вниз

Помогите   Найти похожие ветки 

 
holod_new3   (2006-01-13 10:05) [0]

Доброе утро!
Проблема состоит в следующем:

Есть таблица TUser. (поля ID_User, Name, Age) - это просто для примера.
Допустим, я хочу отредактировать запись из этой таблицы.
Нажимаю кнопочку Edit, в пишу Query1.ExecProc.В Query написан следующий код( Set TRANSACTION isolation level REPEATABLE READ Set Lock_Timeout 0 begin transaction select * from TUser) - транзакцию не закрываю, для наглядности этого примера.

Также есть кнопочка Delete(удаляет запись из TUser), в которой я пишу Query2.ExecProc (Delete From TUser Where ID_User=5) - 5-ая запись просто для примера!

Так вот, после нажатия кнопки Delete запись действительно удаляется из таблицы. Т.е. сервер не генерирует ошибку!!!
(Команды обе на сервер приходят.Проверял с помощью Profiler)

Если проделать подобные действия в QueryAnylazer,т.е В 1-й сессии пишем :
Set TRANSACTION isolation level REPEATABLE READ Set Lock_Timeout 0 begin transaction select * from TUser

во второй сессии пишем:
Delete From TUser
Where ID_User=5

То сервер генерирует ошибку :Ms 1222 ...и т.д. (и это правильно, так как 3-й уровень изоляции).

Но я не понимаю, почему Delphi не генерирует никаких ошибок!!!(или MSSQQL не генирирует). При любых конфликтных ситуациях транзакциях Delphi молчит и ничего не выдаёт!

Как сделать, чтобы вылетала ошибка! В идеале было бы, если ошибку генерировал MSSQL.

СПАСИБО, что прочитали ....


 
Johnmen ©   (2006-01-13 10:32) [1]

Тема не оформлена. Очень много слов...
Отвечать не буду...:)


 
Nikolay M. ©   (2006-01-13 10:38) [2]


> Команды обе на сервер приходят.Проверял с помощью Profiler

Первая сессия, случайно, не рвется?

А если блокировку попробовать наложить в QA, а удалить из Дельфей? Если вывалится 1222-я ошибка (Lock Timeout), значит что-то с настройками соединения в Д. Кстати, что за компоненты используются и в какой связке?


 
Ega23 ©   (2006-01-13 10:40) [3]

Проделал такую же фигню из QA - всё спокойно удалилось...


 
Desdechado ©   (2006-01-13 10:42) [4]

судя по Query1, это БДЕ
он поддерживает не все уровни изоляции


 
Nikolay M. ©   (2006-01-13 11:02) [5]


> Desdechado ©   (13.01.06 10:42) [4]

Во-первых, Query1 может быть чем угодно, например, TEdit-ом :)
Во-вторых, я практически не работал с MS SQL через БДЕ, поэтому мне было бы интересно услышать о его роли в уровнях изоляции, если ISOLATION LEVEL задается явно в тексте запроса и контролируется непосредственно сервером.


 
Nikolay M. ©   (2006-01-13 11:11) [6]


> Ega23 ©   (13.01.06 10:40) [3]
> Проделал такую же фигню из QA - всё спокойно удалилось..

В одном окне QA:

CREATE TABLE tTest (ID INT)

INSERT INTO tTest
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

SET LOCK_TIMEOUT 0

BEGIN TRANSACTION

SELECT * FROM tTest


В другом:

DELETE FROM tTest WHERE ID = 3

Второе висит до тех пор, пока в первом открыта транзакция.


 
Ega23 ©   (2006-01-13 11:38) [7]

А... Не подумал. Действительно надо в разных окнах...


 
Fay ©   (2006-01-13 13:21) [8]

> Но я не понимаю, почему Delphi не генерирует никаких ошибок!!!

Сессия одна.


 
evvcom ©   (2006-01-13 13:50) [9]


> Есть таблица TUser

Не... TUser не таблица, TUser - это ник одного из участников этого форума. :)



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

Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
2-1136846116
heruvim
2006-01-10 01:35
2006.01.29
Печать в Delphi


1-1135162675
Steplerr
2005-12-21 13:57
2006.01.29
Icon в ListBox


2-1137178412
tech
2006-01-13 21:53
2006.01.29
Мастера, поделитесь опытом!


2-1136802445
RUBEY
2006-01-09 13:27
2006.01.29
Скроллинг по DBGRID кнопками


2-1136924395
Glex
2006-01-10 23:19
2006.01.29
Координаты мыши относительно Top-Left формы?





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