Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 14   вперед  Ctrl
 Re: Версионники и блокировочники  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19949
ЛП
Откуда взялось "достаточно откатить только последнюю операцию DML", что за мифические сейф-поинты на ровном месте выросли - загадка.


Думаю, непонимание связано с тем, что oracle никогда не падает по "конфликтам" на commit. Ну если быть точным - то кроме случаев deferred constraints.
Так сделано :)

На счет отката DML и savepoints вот Вам пример:

Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0 

SQL> create table ane_t(a) as select rownum from all_objects where rownum <=10;

Table created

-- В oracle ddl содержит внутренний commit

SQL> select * from ane_t;

         A
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

10 rows selected

SQL> update ane_t set a=-a where a=5;

1 row updated

SQL> savepoint s1; -- Создадим контрольную точку

Savepoint created

SQL> update ane_t set a=-a where a=4;

1 row updated

SQL> select * from ane_t;

         A
----------
         1
         2
         3
        -4 -- Обновление после контрольной точки
        -5 -- Обновление до контрольной точки
         6
         7
         8
         9
        10

10 rows selected

SQL> update ane_t set a=0 where a=1; -- провоцируем deadlock. Шаг1.

1 row updated

-- Session 2:
SQL> update ane_t set a=a where a=10;

1 row updated

-- Session 1:

SQL> update ane_t set a=1000 where a=10; -- Строка блокирована Session 2

-- Тут сессия зависла на блокировке

-- Снова Session2:
SQL> update ane_t set a=a where a=1; -- строка заблокирована Session 1

-- Тут сессия зависла на блокировке

-- Session 1: До сих пор мы висели на блокировке строки where a=10. Но тут нас вышибают по дедлоку:

update ane_t set a=1000 where a=10

ORA-00060: deadlock detected while waiting for resource

SQL> select * from ane_t;

         A
----------
         0 -- строка заблокирована Session 1 нами перед последним вызовом. Изменения не откатились
         2
         3
        -4 -- Обновление после контрольной точки. Изменения не откатились
        -5 -- Обновление до контрольной точки. Изменения не откатились
         6
         7
         8
         9
        10 -- На попытке обновления этой строки мы получили exception. ПОСЛЕДНИЙ DML ОТКАТИЛСЯ

10 rows selected

SQL> rollback to savepoint s1; -- Откатимся до savepoint

Rollback complete

SQL> select * from ane_t;

         A
----------
         1
         2
         3
         4
        -5
         6
         7
         8
         9
        10

10 rows selected

SQL> commit;

Commit complete

-- Session 2, отвисает:

1 row updated

26 сен 06, 19:53    [3187167]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30287
ЛП
Если у Вас "пакет" не есть что-то обязательно целостное для коммита или роллбака - то и не надо называть этот "пакет" транзакцией :). Оно определению противоречит.

понятно, что противоречит, но никто ж не запрещает.
однако самостоятельное завершение транзакций сервером (по rollback) я не одобряю.
26 сен 06, 20:29    [3187245]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
kdv
Разумеется, в версионнике есть блокировки на уровне страниц, но это "не те" блокировки. они нужны только для сериализации изменений в пределах одной страницы, и пользователь их ни в каком виде не наблюдает.
Вы наверное имели в виду Oracle Latches? Это работает немного не так, как вы себе это представляете, но в целом идея вам понятна.
26 сен 06, 21:58    [3187402]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
hvlad
Member

Откуда:
Сообщений: 11577
Anton Demidov
kdv
Разумеется, в версионнике есть блокировки на уровне страниц, но это "не те" блокировки. они нужны только для сериализации изменений в пределах одной страницы, и пользователь их ни в каком виде не наблюдает.
Вы наверное имели в виду Oracle Latches? Это работает немного не так, как вы себе это представляете, но в целом идея вам понятна.
Поздравляю - вы по одной фразе в состоянии понять весь объём представлений говорящего :)

Page latches есть везде - и что ?

Когда речь идёт о блокировках и архитектуре СУБД, то как правило подразумевают именно блокирование выполнения операторов другими операторами. Page latches здесь не имеют никакого отношения к архитектуре СУБД. Впрочем так же как и любые другие ср-ва мультипоточной синхронизации

Если под "чистым версионником" кто-то понимает СУБД, в которой вообще никто никого никогда не блокирует, то такого не бывает. Вообще. Да и не надо - если разрешить редактировать одну запись всем одновременно, то ну его нафиг такой "сервер".

В FB, например, менеджер блокировок есть, но он никогда не используется для блокирования записей
26 сен 06, 22:54    [3187489]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19949
[quot hvlad]по одной фразе в состоянии понять весь объём представлений говорящего :)
Page latches есть везде - и что ?[quot hvlad]
Вообще говоря в Вашем случае - да :)
Когда человек, рассуждая про oracle, произносит слово "page" - с этого момента уже становится понятно, что конкретно oracle он не владеет.
Ну нет там такого понятия, просто нет... :)
При этом, разумеется, никто не ставит под сомнение "весь объем представлений".
Что же до "в чистом версионнике не бывает блокировок" - то это не более чем смешение понятий.
Где, простите, хоть намек на "без блокировок" в слове "версионник"?
"Версия" - вижу, а вот "без блокировок" - не вижу, хоть тресните :)
Разрешение конфликтов встречных обновлений - обязанность СУБД и требует синхронизации доступа к данным, т.е. тех самых блокировок.
Альтернатив что-то не просматривается даже на горизонте.
26 сен 06, 23:18    [3187547]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
hvlad
Page latches здесь не имеют никакого отношения к архитектуре СУБД. Впрочем так же как и любые другие ср-ва мультипоточной синхронизации
Похоже, что у вас пока ещё весьма туманные представления о внутренней кухне СУБД.
26 сен 06, 23:57    [3187620]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
hvlad
Member

Откуда:
Сообщений: 11577
Anton Demidov
hvlad
Page latches здесь не имеют никакого отношения к архитектуре СУБД. Впрочем так же как и любые другие ср-ва мультипоточной синхронизации
Похоже, что у вас пока ещё весьма туманные представления о внутренней кухне СУБД.
Да конечно - я тут так - погулять вышел ;)
27 сен 06, 01:06    [3187723]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30287
автор
и требует синхронизации доступа к данным, т.е. тех самых блокировок.

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

То есть, когда человек произносит "блокировки", непонятно, что он имеет в виду:
а) в терминах операций над строками, высокоуровнево, без подробностей сервера
б) в терминах "блокировка по чтению/записи", то бишь запоминание "номера" записи для предотвращения каких-либо операций с ней.
в) блокировка страниц БД
г) другие блокировки, которые я не знаю.

в IB/FB есть еще например блокировка таблиц целиком, но не об этом речь.

Так что, ну есть в Оракле какой-то там latch. речь-то не про него.

p.s. и с наездами поаккуратнее. ну не знает человек про latch, и что? А вы например знаете внутреннее устройство InterBase или Firebird? И какие там где блокировки происходят? IB/FB до лампочки? Ну так и нам Оракл аналогично, в этом самом смысле, по поводу специфических особенностей или глубочайших деталей реализации.
27 сен 06, 01:54    [3187770]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19949
kdv
автор
и требует синхронизации доступа к данным, т.е. тех самых блокировок.

никто не спорит, однако под "блокировкой" обычно имеют в виду блокирование строки по чтению, строки по записи и т.п.
И такая трактовка термина "блокировки" привычна большинству, в силу массового использования этих самых "блокировочников".
Ну такая трактовка, вообще говоря, ничему не противоречит.
Да, действительно, "версионник" имеет возможность обойтись без блокирования строк и может игнорировать dml-блокировки при чтении. Именно ввиду того, что может реконструировать "снимок" (snapshot) данных на некоторый момент времени, индивидуальный для каждого из параллельно выполняющихся запросов. Но это совсем не значит, что "чистота" версионника определяется наличием или отсутствием механизмов блокирования.
Oracle - "чистый" версионник. В последних релизах - просто неправдоподобно "чистый", ибо может вернуть консистентный набор данных даже из дропнутых таблиц :)
kdv
в IB/FB есть еще например блокировка таблиц целиком, но не об этом речь.
И в oracle есть, ну и что?
kdv
Так что, ну есть в Оракле какой-то там latch. речь-то не про него.
Совершенно с Вами согласен. К обсуждаемому вопросу эти механизмы не имеют никакого отношения.
kdv

p.s. и с наездами поаккуратнее. ну не знает человек про latch, и что?

Мнэээ... А я разве на кого-то наезжал?
27 сен 06, 02:32    [3187796]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
Сейв-поинты - сейв-поинтами
Они не только в оракле есть.
В аксесе так вообще есть полноценные многоуровневые транзакции. Но откатываются то они целиком :).


На счет Accsess-а не скажу, а то недоразумение, что в MS SQL 2000 называется вложенными транзакциями, путать с SavePoint-ами никак не следует. SavePoint дает ИМЕННО возможность ЧАСТИЧНОГО отката транзакции до указанной точки (разумеется пока транзакция не завершена). Это позволяет выполнять в транзакции действия типа "ах так не получилось ? пойдем по другому".

В Oracle каждый DML предваряется неявным savepoint-ом, и если оператор валится, АВТОМАТИЧЕСКИ происходит частичный откат к последнему SavePoint-у. Это не плохо и не хорошо, это ЕСТЬ.
27 сен 06, 08:38    [3188023]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
а то недоразумение, что в MS SQL 2000 называется вложенными транзакциями, путать с SavePoint-ами никак не следует.


Я смотрю, Вы большой знаток MS SQL. :) Можно с этого момента по-подробнее про "недоразумение с вложенными транзакциями в MS SQL"???
27 сен 06, 08:56    [3188075]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54849

andrey_anonymous

Oracle - "чистый" версионник. В последних релизах - просто
неправдоподобно "чистый", ибо может вернуть консистентный набор данных
даже из /дропнутых/ таблиц :)

Охотно поверю в это если Вы скажете сколько таких (разных) консистентных
наборов он в состоянии вернуть одновременно. Т.е. есть таблица в миллион
строк которую проапдейтили в 128 подключениях, но транзакции не
закоммитили. Потом каждое из подключений выполняет селект в своей
транзакции. Что увидит каждое из подключений?

Posted via ActualForum NNTP Server 1.3

27 сен 06, 09:43    [3188278]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67534
Блог
Dimitry Sibiryakov
Охотно поверю в это если Вы скажете сколько таких (разных) консистентных наборов он в состоянии вернуть одновременно. Т.е. есть таблица в миллион строк которую проапдейтили в 128 подключениях ...

Есть такой хороший старый анекдот. У попа спрашивают: "Батюшка, а вот сколько Вы можете выпить водки?". Продолжение напомнить?

Dimitry Sibiryakov
Что увидит каждое из подключений?

Консистентный для себя набор данных.
27 сен 06, 10:19    [3188461]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
Gluk (Kazan)
а то недоразумение, что в MS SQL 2000 называется вложенными транзакциями, путать с SavePoint-ами никак не следует.


Я смотрю, Вы большой знаток MS SQL. :) Можно с этого момента по-подробнее про "недоразумение с вложенными транзакциями в MS SQL"???


мненежалка(с)

БОЛ
Marks the end of a successful implicit or explicit transaction. If @@TRANCOUNT is 1, COMMIT TRANSACTION makes all data modifications performed since the start of the transaction a permanent part of the database, frees the resources held by the transaction, and decrements @@TRANCOUNT to 0. If @@TRANCOUNT is greater than 1, COMMIT TRANSACTION decrements @@TRANCOUNT only by 1 and the transaction stays active.
27 сен 06, 10:46    [3188698]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
2 Gluk (Kazan)

Спасибо, но BOL я и без Вашей ссылки не плохо знаю. ;) Меня интересует, что для Вас является "недоразумение"? Т.е. какого поведения Вы бы хотели? Чтобы вложенный коммит коммитил перманентно?

Gluk (Kazan)
SavePoint дает ИМЕННО возможность ЧАСТИЧНОГО отката транзакции до указанной точки (разумеется пока транзакция не завершена). Это позволяет выполнять в транзакции действия типа "ах так не получилось ? пойдем по другому".


ЛП правильно подметил, что Savepointы не только в Oracle есть.

SAVE TRANSACTION (Transact-SQL)
27 сен 06, 10:55    [3188791]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
x
Guest
IMHO

Блокировка - это приостановление текущего процесса(транзакции) до завершения работы в некотором другом процессе(транзакции).


В это смысле у "чистого версионника" действительно нет никаких блокирок.
Транзакция (логически) выполняется без прерываний другими транзакциями.
Просто при коммите может возникнуть исключение.

У "блокировочника" транзакция может быть заблокирована даже при операции чтения.

У "нечистого блокировочника" чтение никогда не блокируется, а запись блокируется как у "блокировочника".
27 сен 06, 11:01    [3188850]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
pkarklin
ЛП правильно подметил, что Savepointы не только в Oracle есть.

SAVE TRANSACTION (Transact-SQL)


а что, по ЭТОМУ поводу я возражал ??? не заметил :(
я сказал, только то, что в Oracle ЕСТЬ SavePoint-ы и благодаря ИМ возможен автоматический откат последнего DML при возникновении исключения (что исключения ПОЯВИЛИСЬ в TSQL я ТОЖЕ знаю, не трудитесь). Что тут непонятно.

В отношении ВЛОЖЕННЫХ транзакций, я заметил, что @@TRANCOUNT не стоит путать с SavePoint-ами, это разные вещи (эмоцирнальную окраску оставим в стороне, на вкус и цвет ...)

Я ясно изложил свою точку зрения ?

P.S. А что, в Access-е SavePoint-ы таки тоже появились ???
27 сен 06, 11:31    [3189161]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
x
IMHO

Блокировка - это приостановление текущего процесса(транзакции) до завершения работы в некотором другом процессе(транзакции).

В это смысле у "чистого версионника" действительно нет никаких блокирок.
Транзакция (логически) выполняется без прерываний другими транзакциями.
Просто при коммите может возникнуть исключение.

У "блокировочника" транзакция может быть заблокирована даже при операции чтения.

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


Команда или вся транзакция (в зависимости от уровня изолированности) должна видеть данные на момент своего старта. Это правило для транзакции.

Значит, select видит свой собственный, согласованный на момент старта, набор данных. Другое дело, как технологически обеспечивается это согласование. Либо появляется новая версия данных где-нибудь в кеше, восстановленная из информации для отката ("версионники"). Либо просто селект не дает менять данные никому, блокируя строки ("блокировочники"). Для упрощения многих задач в "версионниках" дополнительно вводятся блокирующие select'ы (select for update), в то время как обычный select ничего и никого не блокирует.

А вот dml работает с последней (current) версией данных. Именно поэтому для предотвращения одновременного обновления и вводятся блокировки. Иначе придется потратить кучу ресурсов на разбор версий и разрешение конфликтов (как правило на commit'е), что недопустимо в промышленной эксплуатации. Пусть теоретики трындят о "предательстве чистых идеалов мировой революции" и отсутствии "чистых версионников".

Опять-таки, технологически можно проверять какие-то правила либо сразу после выполнения команды с откатом аварийно завершившейся команды, либо только в момент фиксации транзакции с откатом всей транзакции. Здесь все зависит от производителей СУБД и разработчиков приложений.
27 сен 06, 11:41    [3189270]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32912

Привет, AI!
Ты пишешь:

AI
A> Команда или вся транзакция (в зависимости от уровня изолированности)
A> должна видеть данные на момент своего старта. Это правило для транзакции.
в библятеку!
с Гарей вместе.
читать книжки.
он знает какие.
(наверное)

hint: Read Committed about...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

27 сен 06, 11:56    [3189457]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
hvlad
Member

Откуда:
Сообщений: 11577
andrey_anonymous
[quot hvlad]по одной фразе в состоянии понять весь объём представлений говорящего :)
Page latches есть везде - и что ?[quot hvlad]
Вообще говоря в Вашем случае - да :)
Когда человек, рассуждая про oracle, произносит слово "page" - с этого момента уже становится понятно, что конкретно oracle он не владеет.
Ну нет там такого понятия, просто нет... :)
От того, что вместо слова page ораклисты употребляют слово block, ничего не меняется. СУБД по-прежнему общается с файлами данных блоками\страницами и по-прежнему нуждается в механизме синхронизации доступа к страницам из разных потоков. И от версионной\блокировочной архитектуры СУБД этот факт никак не зависит.

Записи, транзакции со своими уровнями изоляции, dml\ddl блокировки - это совершенно другие слои абстракции (и реализации тоже).

Так шта... не надо путать понятия, ни конкретно, ни абстрактно :)
27 сен 06, 12:12    [3189633]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Gluk (Kazan)
а что, по ЭТОМУ поводу я возражал ??? не заметил :(
я сказал, только то, что в Oracle ЕСТЬ SavePoint-ы и благодаря ИМ возможен автоматический откат последнего DML при возникновении исключения (что исключения ПОЯВИЛИСЬ в TSQL я ТОЖЕ знаю, не трудитесь). Что тут непонятно.

В отношении ВЛОЖЕННЫХ транзакций, я заметил, что @@TRANCOUNT не стоит путать с SavePoint-ами, это разные вещи (эмоцирнальную окраску оставим в стороне, на вкус и цвет ...)

Я ясно изложил свою точку зрения ?

P.S. А что, в Access-е SavePoint-ы таки тоже появились ???


Ну, относительно ясно. Хотя по предыдущему посту посторонним действительно могло показаться, что у MS SQL со влеженными транзакциями действительно "недоразумение."

Ибо упомянув про @@trancount и не упомянув про SAVE TRANSACTION - картина получилась неполной.

На счет Аксесса, сорри, не в курсе.
27 сен 06, 12:47    [3190019]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
ЛП
Guest
2 kdv
ЛП
Если у Вас "пакет" не есть что-то обязательно целостное для коммита или роллбака - то и не надо называть этот "пакет" транзакцией :). Оно определению противоречит.

понятно, что противоречит, но никто ж не запрещает.

Здравствуй жопа новый год :)
Определение запрещает, а кроме него - нет, никто не запрещает :))
Еще раз. Если у вас есть "нечто" ("например обновление прайса"), состоящее из отдельных блоков, успешность или неуспешность которых не зависит друг от друга, то нафига это "нечто" засовывать в транзакцию? Чтобы потом с ненужной атомарностью бороться, писать код, который позволит этому "нечту" быть неатомарным набором блоков? Создали себе проблему, а потом мужыствина её решаем

------------------

2 Gluk (Kazan)
На счет Accsess-а не скажу, а то недоразумение, что в MS SQL 2000 называется вложенными транзакциями, путать с SavePoint-ами никак не следует.

В MS SQL Server'е и в Oracle - одинаковые "недоразумения". Сейв-поинты есть и там, и там, вложенных транзакций нет ни там, ни там.
Сравнивать то, чего нет, с тем, что есть (хоть и в убогеньком виде) - можете хоть на примере сиквела, хоть на примере оракла. Результат один.

P.S. А что, в Access-е SavePoint-ы таки тоже появились ???

Я по-моему русским по белому написал, что в аксесе есть полноценные вложенные транзакции.
Для тупых повторяю - в аксесе есть вложенные транзакции.
Соответственно нет нужды в паллиативах типа сейв-поинтов (и "неявных сейв-поинтов перед началом каждого стейтмента").
27 сен 06, 14:55    [3191074]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
ЛП
Для тупых повторяю


Ну ежель ты такой умный, почему у тебя вызвал вопрос частичный откат изменений, выполненных последним DML ???

Кстати, мог бы дать сцылку на это чудо в документации. От многократного повторения что "ОНИ ЕСТЬ", собеседнику ни тепло ни холодно
27 сен 06, 15:03    [3191135]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
ЛП
Guest
2 Gluk (Kazan)
Ну ежель ты такой умный, почему у тебя вызвал вопрос частичный откат изменений, выполненных последним DML ???

Если для тупых надо повторять по два раза, то для некоторых ораклоидов - по три :)
Итак.
Рассматривался случай, когда транзакция рушится на коммите. Соответственно надо её откатывать. Тут выползает какое-то чудо, и говорит, что откатывать транзакцию целиком не надо, а надо откатить её неполностью, типо только последний DML-стейтмент. Ахуеть.

Я ж не виноват, что некоторые ораклоиды не понимают, что падение может быть не только по последнему стейтменту, что никаких сейв-поинтов может не быть установлено (да собственно изначально про них ни слова и не было), и то, что паллиативные сейв-поинты тут вообще не при делах :).
Нет, блин, начинается цирк "можно написать приладу", "каждый стейтмент с неявным сейв-поинтом", "ах так не получилось ? пойдем по другому".

Кстати, мог бы дать сцылку на это чудо в документации.

У тебя есть документация по аксесу?
27 сен 06, 15:49    [3191527]     Ответить | Цитировать Сообщить модератору
 Re: Версионники и блокировочники  [new]
protector
Member

Откуда: Иваново, Россия
Сообщений: 600


Маниакальный бред в тяжелой форме, походу, не лечится...

Posted via ActualForum NNTP Server 1.3

27 сен 06, 15:57    [3191596]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6 7 8 9 10 .. 14   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить