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

Уважаемый DBA-шник!
Вы, безусловно, сильны в аллегориях... ;)
Как ни печально, превращение науки в бизнес прекратить нельзя.
Если Вы не понимаете к чему ведет кибернетику этот синий бренд, взгляните на медицину, в частности - фармацевтику. То, во что она превратилась в сегодняшние дни.

Это ведёт к тому что время разработки сокращается, а продолжительность жизни увеличивается


Мда, только разработки чего? Помнится 286-е обеспечивали функционал побогаче сегодняшнего новодела. :). А ведь все начиналось словами - "Чтобы под Windows работало".

Вопрос - чья продолжительность жизни? Мы же любим точные цифры, или хотя-бы статистику?

По теме:
Если откат так уж сильно нужен, то пусть самостоятельно обеспечить механизм отката транзакции - нет проблем. Работы на недели 2. Прочитав 3-4 адекватные книги по теории баз данных это не составит труда. Заодно прийдет понимание, что такое базы данных.
26 авг 08, 11:23    [6108641]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
MasterZiv
Это - большой спорный вопрос. Вот я , например, как разработчик БД,
всегда представляю, что за транзакции у меня работают. ПОтому что
я их пишу (или мои коллеги). Если у вас в конторе комманда организована
по-другому, это ваше частное дело.
То есть вы хотите сказать, что именно в бд у вас все транзакции открываются и именно в бд они закрываются? То есть приложение может выполнять только ХП и никакого DML?
26 авг 08, 11:27    [6108665]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
DBA-шник
Guest
pkarklin
hvlad
Потому что не он её начинал. Всё, что он может - вызвать исключение, по которому сервером безусловно откатывается оператор, вызвавший срабатывание триггера. Судьба же всей тр-ции - в руках вызывающего кода.


На мой взгляд, тут есть большая дыра. И вот на мой взгляд она в чем. В пытаетесь вынести логику обработки исключительных ситуаций на "вызывающий срабатывание триггера код". Тем самым делая серверный код несамодостаточным. Пусть будет триггер, который генерит только исключение, надеясь, что "вызывающий его код" корректно обработает это исключение. Где гарантия, что любое клиентское приложение, будет иметь корректный обрабочик исключения, сгенеренного триггером?

Только не надо снова о "методологиях и принципах". Мы говорим о самодостаточночти и изолированности?


Ну уважаемый, а где гарантия, что обработают нарушение уникальности или диапазона? Давайте и это тоже пустим побоку. Понапридумывали тут, нахрен все. Какие ключи? Они же что-то не дают делать - в топку. Какая уникальность? Нефиг, у нас Ивановых много, потом как-нить разберемся. Какое проектирование БД? Это-ж итерационно разрабатывать мешает - в топку. Что-то понадобилось - прикрутим, мешает обрежем. Правильно?

Давайте будем делать супердостаточным, просто rollback и все, и документировать не надо. А то, что транзакция может быть распределенной, и причем не обязательно начатая на твоем любимом сервере, и не обязательно под твоей наколенной поделкой, это тебя не волнует. Легче же? Удобней? Быстрее разрабатывать? А потом "трава не рости"?
Знаете, какое счастье наблюдать "транзакция в неопределенном состоянии"? Прям аж удовольствие. DBA экстаз испытывают, наблюдая такую картину.
26 авг 08, 11:37    [6108727]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
DBA-шник
Guest
Bogdanov Andrey
MasterZiv
Это - большой спорный вопрос. Вот я , например, как разработчик БД,
всегда представляю, что за транзакции у меня работают. ПОтому что
я их пишу (или мои коллеги). Если у вас в конторе комманда организована
по-другому, это ваше частное дело.
То есть вы хотите сказать, что именно в бд у вас все транзакции открываются и именно в бд они закрываются? То есть приложение может выполнять только ХП и никакого DML?


Приложения DML не выполняют.
26 авг 08, 11:39    [6108746]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
hvlad
Разработчик БД, а точнее этого триггера, понятия не имеет обо всех возможных существующих и будущих контекстах вызова этого триггера. Его дело - не допустить нарушения того правила, которое контролирует триггер. Для этого необходимо и достаточно откатить единственный оператор, а не всю тр-цию. И "целостность" данных тут никак не нарушается.

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

Естественно я понимаю что Вы делаете не так.
Как тогда?
26 авг 08, 11:44    [6108811]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
pkarklin
hvlad
Потому что не он её начинал. Всё, что он может - вызвать исключение, по которому сервером безусловно откатывается оператор, вызвавший срабатывание триггера. Судьба же всей тр-ции - в руках вызывающего кода.


На мой взгляд, тут есть большая дыра. И вот на мой взгляд она в чем. В пытаетесь вынести логику обработки исключительных ситуаций на "вызывающий срабатывание триггера код". Тем самым делая серверный код несамодостаточным. Пусть будет триггер, который генерит только исключение, надеясь, что "вызывающий его код" корректно обработает это исключение. Где гарантия, что любое клиентское приложение, будет иметь корректный обрабочик исключения, сгенеренного триггером?

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

Насчёт гарантий от клиента. А при чём тут это ? Ещё раз - исключение в триггере откатывает вызвавший оператор. Это есть необходимое и достаточное действие. Всё остальное - забота разработчика ПО. А где гарантия, что клиент вообще вызывает сервер в правильной последовательности ?

Если Вы намекаете на тонких, не обременённых разумом клиентов, то не нужно в них управлять тр-циями. И прямой DML тоже не нужно в них делать. Это так просто, не так ли ? Я не понимаю Вашего упора на клиента. Когда я говорю о слоях, то это не значит что их строго два - клиент и сервер.
26 авг 08, 11:49    [6108845]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
pkarklin
hvlad
Мы понимаем разницу между обработкой исключений и жестким откатом тр-ции ?


Вот. Мы, таки, докапались, до основ. Точнее, до того, что мы понимаем в контексте данного обсуждения под транзакцией. А именно - наличиие исключения при выполнении одной из инструкции транзакции должно приводить к ее полному откату или нет?
К автоматическому откату - однозначно нет.

pkarklin
Дав ответ на это вопрос мы и получим ответ - имеет право быть ROLLBACK в триггере или нет.

Работать ли при SET XACT_ABORT OFF и обрабатывать исключение, которое может возникнуть на любой инструкйии транзакции или откатывать ее всю при исключении на любом из операторов.

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

В некоторых случаях достоаточно будет грубого ROLLBACK, а в некоторых детальная обработка в try ... catch...

Поэтому я и против категоричного "нет" ROLLBACK в триггере.
Да я и не настаиваю ни на чём. Делайте как хотите\привыкли :) Но, сначала нужно понимать, что и зачем делается (это не есть персональный совет)
Могу представить себе единственный случай оправданности роллбека из триггера - когда всю систему разрабытывает и поддерживает 1 человек, который к тому же, жутко спешит сдать систему. Об однодневных поделках не будем :)

pkarklin
ЗЫ. И не надо плевать в сторону мелкомягких. Такая возможность существует во многих СУБД.
Ну вот ораклисты здесь тоже упорно против такого, чего бы это ? ;)
26 авг 08, 11:59    [6108911]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
pkarklin
Member

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

Успокойтесь. Я не собираюсь дискутировать с Вами в демогагическом стиле!!!
26 авг 08, 11:59    [6108914]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
DBA-шник
Guest
hvlad
Ну вот ораклисты здесь тоже упорно против такого, чего бы это ? ;)

+100
:)
26 авг 08, 12:12    [6108987]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
SergSuper
hvlad
Разработчик БД, а точнее этого триггера, понятия не имеет обо всех возможных существующих и будущих контекстах вызова этого триггера. Его дело - не допустить нарушения того правила, которое контролирует триггер. Для этого необходимо и достаточно откатить единственный оператор, а не всю тр-цию. И "целостность" данных тут никак не нарушается.

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

SergSuper
В результате я получу введенный документ, проводку, но остатки будут неправильными, хотя и "красивыми" - откатить единственный оператор, а не всю тр-цию недостаточно.

Естественно я понимаю что Вы делаете не так.
Как тогда?
А как Вам будет угодно. Откатывать вызов тр-ции, или сейвпойнт. Но принимать решение должен не триггер. Ибо далеко не факт, что он сработал именно из вашей процедуры обновления остатков. Это одна из главных проблем при нарушении изоляции слоёв ПО.

Контрпример, может быть не очень жизненный, но это не суть важно. Поддерживается несколько видов учёта ('бухгалтерский' и 'управленческий', например) и допускается разное состояние признака "проведен" у док-та в каждом виде учёта. Почему отказ провести док-т в одном виде учёта должен приводить к отказу провести его в остальных учётах ?
26 авг 08, 12:13    [6108995]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
DBA-шник
Guest
pkarklin
2 DBA-шник

Успокойтесь. Я не собираюсь дискутировать с Вами в демогагическом стиле!!!


Уважаемый pkarklin,
Большинство здравомыслящих людей согласятся, что молодежь надо учить хорошему.
Вот как бы Вы отнеслись к полемике, развернувшейся вокруг:

"Я жил в Голландии, иногда пробовал героин, ощущения приятные. Но я приехал в Россию, здесь героина в официальной продаже нет. Мне почему-то говорят, что самые лучшие ощущения - быть здоровым человеком. И предлагают ходить в спортзал и пить минеральную воду. Но я думаю, что героин лучше. Уважаемые форумчане, вы не подскажете, как обойти этот Российский запрет на свободную продажу героина?".

Ни чего не напоминает?
26 авг 08, 12:19    [6109036]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
hvlad

SergSuper
В результате я получу введенный документ, проводку, но остатки будут неправильными, хотя и "красивыми" - откатить единственный оператор, а не всю тр-цию недостаточно.

Естественно я понимаю что Вы делаете не так.
Как тогда?
А как Вам будет угодно. Откатывать вызов тр-ции, или сейвпойнт. Но принимать решение должен не триггер. Ибо далеко не факт, что он сработал именно из вашей процедуры обновления остатков. Это одна из главных проблем при нарушении изоляции слоёв ПО.

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

hvlad

Контрпример, может быть не очень жизненный, но это не суть важно. Поддерживается несколько видов учёта ('бухгалтерский' и 'управленческий', например) и допускается разное состояние признака "проведен" у док-та в каждом виде учёта. Почему отказ провести док-т в одном виде учёта должен приводить к отказу провести его в остальных учётах ?

Потому что действия выполняются в транзакции, а транзакция является наименьшим, неделимым блоком алгоритма изменения данных.
Либо делайте в разных транзакциях, либо меняйте проверку.
26 авг 08, 12:28    [6109101]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

pkarklin wrote:

> На мой взгляд, тут есть большая дыра. И вот на мой взгляд она в чем. В
> пытаетесь вынести логику обработки исключительных ситуаций на
> "вызывающий срабатывание триггера код". Тем самым делая серверный код
> несамодостаточным. Пусть будет триггер, который генерит только
> исключение, надеясь, что "вызывающий его код" корректно обработает это
> исключение. Где гарантия, что любое клиентское приложение, будет иметь
> корректный обрабочик исключения, сгенеренного триггером?
+1

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

Posted via ActualForum NNTP Server 1.4

26 авг 08, 12:34    [6109159]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
DBA-шник
pkarklin
2 DBA-шник

Успокойтесь. Я не собираюсь дискутировать с Вами в демогагическом стиле!!!


Уважаемый pkarklin,
Большинство здравомыслящих людей согласятся, что молодежь надо учить хорошему.
Вот как бы Вы отнеслись к полемике, развернувшейся вокруг:

"Я жил в Голландии, иногда пробовал героин, ощущения приятные. Но я приехал в Россию, здесь героина в официальной продаже нет. Мне почему-то говорят, что самые лучшие ощущения - быть здоровым человеком. И предлагают ходить в спортзал и пить минеральную воду. Но я думаю, что героин лучше. Уважаемые форумчане, вы не подскажете, как обойти этот Российский запрет на свободную продажу героина?".

Ни чего не напоминает?

Дело в том что Российский запрет на свободную продажу героина в законодательсве есть, а определения изоляции слоёв нет, во всяком случае нам не предоставили.
Кстати в Голландии героин тоже запрещен

Сообщение было отредактировано: 26 авг 08, 12:37
26 авг 08, 12:35    [6109161]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

Bogdanov Andrey wrote:

> То есть вы хотите сказать, что именно в бд у вас все транзакции
> открываются и именно в бд они закрываются?
> То есть приложение может
> выполнять только ХП и никакого DML?

Представь себе, именно так. Можешь ?

DML запрещён вообще пользователям (прав нет), только они могут
выполнить процедуру, всё управление транзакциями в БД,
если клиент открывает транзакцию, она тут же откатывается.

Posted via ActualForum NNTP Server 1.4

26 авг 08, 12:37    [6109167]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hey
Guest
MasterZiv

DML запрещён вообще пользователям (прав нет), только они могут
выполнить процедуру, всё управление транзакциями в БД,
если клиент открывает транзакцию, она тут же откатывается.
Posted via ActualForum NNTP Server 1.4

как быть, если клиент использует ORM ? Там обычно маппинг идет на таблицы
26 авг 08, 12:45    [6109209]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
hvlad
Нет. Я этого не предлагаю. Оператор уже откачен сервером.


Что Вы все прицепились к оператору? Я говорю о транзакции.

теория
Тransaction is a sequence of operations performed as a single logical unit of work. A logical unit of work must exhibit four properties, called the atomicity, consistency, isolation, and durability (ACID) properties, to qualify as a transaction.


Или для Вас частичное выполнение транзакции - нормальная практика? М.б. что-то в консерватории не так? Или транзакций должно быть больше, чем одна?!


SergSuper
Потому что действия выполняются в транзакции, а транзакция является наименьшим, неделимым блоком алгоритма изменения данных.
Либо делайте в разных транзакциях, либо меняйте проверку.


+1024
26 авг 08, 12:59    [6109273]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
DBA-шник

Уважаемый pkarklin,
Большинство здравомыслящих людей согласятся, что молодежь надо учить хорошему.
Вот как бы Вы отнеслись к полемике, развернувшейся вокруг:

"Я жил в Голландии, иногда пробовал героин, ощущения приятные. Но я приехал в Россию, здесь героина в официальной продаже нет. Мне почему-то говорят, что самые лучшие ощущения - быть здоровым человеком. И предлагают ходить в спортзал и пить минеральную воду. Но я думаю, что героин лучше. Уважаемые форумчане, вы не подскажете, как обойти этот Российский запрет на свободную продажу героина?".

Ни чего не напоминает?


"Хорошему" на догмах не учат.
26 авг 08, 13:00    [6109277]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
DBA-шник
hvlad
Ну вот ораклисты здесь тоже упорно против такого, чего бы это ? ;)

+100
:)


Ну, так это уже всем наевший оскомину баян: "Раз в Оракле этого нет, значит этого никому не надо".

26 авг 08, 13:01    [6109285]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
SergSuper
Триггер сработал в транзакции(не важно из моей или другой процедуры). Транзакция должна быть откачена(если есть такое слово), выясняется это в триггере.
Кому должна ?
А если подумать об общем случае, а не о частном ?

SergSuper
Не вижу никаких причин чтобы были задействованы для отката еще какие-то "слои".
Про суслика напомнить ?

SergSuper
hvlad

Контрпример, может быть не очень жизненный, но это не суть важно. Поддерживается несколько видов учёта ('бухгалтерский' и 'управленческий', например) и допускается разное состояние признака "проведен" у док-та в каждом виде учёта. Почему отказ провести док-т в одном виде учёта должен приводить к отказу провести его в остальных учётах ?

Потому что действия выполняются в транзакции, а транзакция является наименьшим, неделимым блоком алгоритма изменения данных.
Либо делайте в разных транзакциях, либо меняйте проверку.
Вот и началось прогибание под ... не скажу что :)
А я не хочу\не могу в разных тр-циях - там кроме проведения могут быть другие действия, связанные логически. И проверка меня устраивает :)

Определение (не вполне корректное с формальной точки зрения, кстати), описывает взгляд снаружи тр-ции (из другого слоя :-P), мы же говорим о её внутренностях.

Закончим на этом, по кругу ходить не хочется.
26 авг 08, 13:11    [6109330]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
Dimitry Sibiryakov
Member

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

SergSuper

как Вам удалось избежать заточки мозгов на "специфичные фичи" IB? ;)

Меня прокуратура никуда не гонит.

Posted via ActualForum NNTP Server 1.4

26 авг 08, 13:11    [6109337]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
MasterZiv
Представь себе, именно так. Можешь ?

DML запрещён вообще пользователям (прав нет), только они могут
выполнить процедуру, всё управление транзакциями в БД,
если клиент открывает транзакцию, она тут же откатывается.
Posted via ActualForum NNTP Server 1.4
Легко могу такое представить. И более того о таком подходе я писал пару страниц ранее. Вот только к вопросу о том, где завершать транзакцию начатую приложением (и к изоляции слоев) все это отношение не имеет.
26 авг 08, 13:15    [6109356]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
pkarklin
Что Вы все прицепились к оператору? Я говорю о транзакции.
Ну так ведь нарушение целостности вызвано именно оператором (ведь триггер у вас не на завершение транзакции срабатывает, а на вызов конкретного оператора). А вы откатывать почему-то всю транзакцию собрались.
26 авг 08, 13:18    [6109366]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
pkarklin
hvlad
Нет. Я этого не предлагаю. Оператор уже откачен сервером.


Что Вы все прицепились к оператору? Я говорю о транзакции.
У нас триггер вроде бы на оператор вызывается, а не на тр-цию ?

pkarklin
теория
Тransaction is a sequence of operations performed as a single logical unit of work. A logical unit of work must exhibit four properties, called the atomicity, consistency, isolation, and durability (ACID) properties, to qualify as a transaction.


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

Скатываемся на персоналии... не хорошо...

pkarklin
М.б. что-то в консерватории не так? Или транзакций должно быть больше, чем одна?!
Я Вас чем-то обидел ? В консерватории действительно что-то не так... у некоторых тут она просто отсутствует... к сожалению


pkarklin
SergSuper
Потому что действия выполняются в транзакции, а транзакция является наименьшим, неделимым блоком алгоритма изменения данных.
Либо делайте в разных транзакциях, либо меняйте проверку.


+1024
Это сговор
26 авг 08, 13:19    [6109369]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
hvlad
Member

Откуда:
Сообщений: 11554
MasterZiv
приверженцы исключений и FB всех "заставляют"
плясать под свою дуду.
Где кто-то кого-то что-то "заставляет" ?
26 авг 08, 13:20    [6109376]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8 9 10 .. 25   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить