|
|
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin И после этого кричать: "ну ребятя, ну фигня же это". Еще раз спрощу, почему не кричите "фигня", что в char(1) два символа не влазит? да insert мне не интересно, мое имхо, что отсутсвие пакетов, зависимостей и колекций (костыли с ВТ обсудили) делают содержание суровой бизнес логики в T-SQL сильно проблематичной, от того МС сильно тяготеет к выносу БЛ на средний слой. к стате почитал Inside Microsoft® SQL Server™ 2005: The Storage Engine, ничего на счет планов там не нашел, где бы взять Inside Microsoft SQL Server 2005: Query Tuning and Optimization ? а то пока я неувидел отдельных планов для батчей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:08 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky begin tran drop table rollback - и жоППА.... жопа она у mssql, а у oracle10g есть recycle bin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:12 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!к стате почитал Inside Microsoft® SQL Server™ 2005: The Storage Engine, ничего на счет планов там не нашел Ну, в Storage Engine и не должно быть. Yo.!где бы взять Inside Microsoft SQL Server 2005: Query Tuning and Optimization ? Если в электронном виде, то не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:15 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > Автор: Yo.! > locky > > begin tran > drop table > rollback > > - и жоППА.... > > > жопа она у mssql, а у oracle10g есть recycle bin в сиквеле дроп таблы просто откатитцо - как будто и не дропалась :) И - никаких танцев с бубнами... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:15 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky в сиквеле дроп таблы просто откатитцо - как будто и не дропалась :) И - никаких танцев с бубнами... Posted via ActualForum NNTP Server 1.4 в оракле таблы просто востановятся из recycle bin - - как будто и не дропались. И - никаких танцев с бубнами... даже если транзакция закомитилась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:24 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin Yo.! конечно проблемы :) Господа, ну ей богу. Сказано - нельзя INSERT ... EXEC ... быть вложенным, нет я все равно буду пытаться это использовать. Сказано об ограничениях DDL при снапшоте, нет я все равно буду это использовать. И после этого кричать: "ну ребятя, ну фигня же это". Еще раз спрощу, почему не кричите "фигня", что в char(1) два символа не влазит? Чего ей богу - какое сравнение возможностей вы хотите если у вас на любой недостаток MSSQL будет ответ - "by design"? Оно понятно что "by design" но, согласитесь, неудобством от этого быть не перестает. ;) Итак по tsql: 1. невозможно написать код который одинаково будет работать вне зависимости от того вызван он с клиента или из другого tsql кода. 2. невозможно написать код который будет работать как в set xact_abort on так и в set xact_abort off 3. если код пишется для режима set xact_abort off и использует проверку кода ошибки после каждого выражения то такой код не будет работать как только его вызовут из кода в котором set xact_abort включен в on 4. в tsql нет коллекций и локальных переменных 5. динамический sql выполняется только с правами вызывающего пользователя (это нельзя изменить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:32 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > 1. невозможно написать код который одинаково будет работать вне > зависимости от того вызван он с клиента или из другого tsql кода. select * from all_tables одинаково кругом сработает? > 4. в tsql нет коллекций и локальных переменных Локальных переменных? > 5. динамический sql выполняется только с правами вызывающего > пользователя (это нельзя изменить) execute as <user>? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:37 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky select * from all_tables одинаково кругом сработает? Если честно, то я не понял. Если это код для Oracle то напомню мы сравниваем TSQL и PL/SQL для MSSQL2k и Oracle 9. Так вот то что вы написали это не pl/sql. locky Локальных переменных? Извините, глобальных переменных для tsql. locky execute as <user>? В MSSQL2k? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:48 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > Если честно, то я не понял. Если это код для Oracle то напомню мы > сравниваем TSQL и PL/SQL для MSSQL2k и Oracle 9. Так вот то что вы > написали это не pl/sql. Имелась в виду разница при возврате данных из SQL и PL/SQL Существенно различается. Даже - очень. > execute as <user>? > > В MSSQL2k? в 2к5. Иначе я припомню отсутствие ansi joins (вот только бы вспомнить - с какой они версии появились :) ) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 19:01 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky funikovyuri wrote: > Если честно, то я не понял. Если это код для Oracle то напомню мы > сравниваем TSQL и PL/SQL для MSSQL2k и Oracle 9. Так вот то что вы > написали это не pl/sql. Имелась в виду разница при возврате данных из SQL и PL/SQL Существенно различается. Даже - очень. Опять не понял. locky в Oracle код который будет "вызываться с клиента" и код который будет вызываться из другого pl/sql кода будет одинаков. Это УДОБНО и ПРАВИЛЬНО. см выше. > execute as <user>? > > В MSSQL2k? в 2к5. Иначе я припомню отсутствие ansi joins (вот только бы вспомнить - с какой они версии появились :) ) в 9-ке они есть, это раз, а два - это то что left/right отличались синтаксисом, но были доступны. Мы же говорим о том чего в tsql нет вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 19:04 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: >Мы же говорим о том чего в tsql нет вообще. Коллекций и глобальных (пакетных?) переменных. Коллекции - можно реализовать, но через жо.. пардон, XML - не шибко удобно и быстро. переменные - если транзакционно зависимые - можно реализовать достаточно легко, но в самом т-скл их нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 19:08 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Еще нет автомномных транзакций - довольно полезная штука. Можно выкрутится... но уж через сильную ж... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 19:12 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri 1. невозможно написать код который одинаково будет работать вне зависимости от того вызван он с клиента или из другого tsql кода. Интересно, почему у некоторых людей так часто проблемы с логикой? --SELECT Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Пример понятен или надо разжевать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 21:43 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
drev wrote: > Пример понятен или надо разжевать? Мне бы для оракла такое... чтоб без рефов :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 21:52 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri Чего ей богу - какое сравнение возможностей вы хотите если у вас на любой недостаток MSSQL будет ответ - "by design"? Оно понятно что "by design" но, согласитесь, неудобством от этого быть не перестает. ;) Пока я не видел приведенных Вами, действительно недостатков, хотя они, безусловное есть. ;) Честно говоря, от Вас я ожидал более серьезного подхода и вскрытия более глубинных проблем, чем вложенность INSERT ... EXEC... Вы же по непонятным мне причинам скатываетесь до уровня "нахрапистого юнца", которому абсолютно по-барабану, что написано в документации, и видители, он придумал, что его конструкциия должна работать так, как ему хочется, а результате все оказалось совсем не так, и он от этого сильно страдает. funikovyuri1. невозможно написать код который одинаково будет работать вне зависимости от того вызван он с клиента или из другого tsql кода. Возможно. И Вы это прекрасно знаете. Но Вы опять зациклились на возврате резалтсета из хп. В прощлый раз обсуждение этой темы как раз вылилось из моего заявления о неудобстве возврата набора данных из хп в Oracle через рефкурсор. funikovyuri2. невозможно написать код который будет работать как в set xact_abort on так и в set xact_abort off Возможно, ибо управление этой опцией в Ваших руках. В хп, имеющей set xact_abort on, Вы можете вызвать хп, имеющую set xact_abort off. funikovyuri3. если код пишется для режима set xact_abort off и использует проверку кода ошибки после каждого выражения то такой код не будет работать как только его вызовут из кода в котором set xact_abort включен в on Прежде, чем что-то заявлять, стоит подумать или, хотя бы попробовать. Перечитайте мой предыдущий абзац. funikovyuri4. в tsql нет коллекций и локальных переменных Нет ни коллекций, ни глобальных переменных. За использование последних я бы вообще расстреливал. Первые, как уже указывалось, можно реализовать. funikovyuri5. динамический sql выполняется только с правами вызывающего пользователя (это нельзя изменить) Это справедливо для версий до 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 08:37 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklinЭто справедливо для версий до 2000. До 2005, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 08:41 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
drev Интересно, почему у некоторых людей так часто проблемы с логикой? ... Пример понятен или надо разжевать? Родное сердце, у Вас, как говорится, слишком мало постов, чтобы писать подобное ;) Хотя, полдела уже есть - Вы верно поставили первый вопрос. Вторым для Вас должен быть вопрос: а стоит ли считать себя умнее всех вокруг и начинать знакомство с незнакомыми людьми с хамства. Так что советую пока искать ответы и больше думать. ЗЫ Вы, судя по всему, этот продукт продаете? Если да, то мне искренне жаль MS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 09:08 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri drev Интересно, почему у некоторых людей так часто проблемы с логикой? ... Пример понятен или надо разжевать? Родное сердце, у Вас, как говорится, слишком мало постов, чтобы писать подобное ;) Хотя, полдела уже есть - Вы верно поставили первый вопрос. Вторым для Вас должен быть вопрос: а стоит ли считать себя умнее всех вокруг и начинать знакомство с незнакомыми людьми с хамства. Так что советую пока искать ответы и больше думать. ЗЫ Вы, судя по всему, этот продукт продаете? Если да, то мне искренне жаль MS. 1. Вы, это , код прогоните:) Он под 2000 должен работать:) Может поймёте, что Ваша цепочка высказываний про "TSQL это какой-то "незамкнутый" язык - он позволяет получить нечто что не является элементом этого языка" несколько нелогична:) 2. Более того, странно, как человек, знакомый только с версией продукта восьмилетней давности, имеет моральное право писать не "слишком мало постов" :) Может так количество и набирается?:) 3. Я не занимаюсь продажей программных продуктов:) Не дано:) Только их разработкой:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 09:40 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin funikovyuri Чего ей богу - какое сравнение возможностей вы хотите если у вас на любой недостаток MSSQL будет ответ - "by design"? Оно понятно что "by design" но, согласитесь, неудобством от этого быть не перестает. ;) Пока я не видел приведенных Вами, действительно недостатков, хотя они, безусловное есть. ;) Честно говоря, от Вас я ожидал более серьезного подхода и вскрытия более глубинных проблем, чем вложенность INSERT ... EXEC... Вы же по непонятным мне причинам скатываетесь до уровня "нахрапистого юнца", которому абсолютно по-барабану, что написано в документации, и видители, он придумал, что его конструкциия должна работать так, как ему хочется, а результате все оказалось совсем не так, и он от этого сильно страдает. Уважаемый, если не затруднит покажите, где я написал что хочу чтобы моя конструкция должна работать так, как мне хочется? Я писал о том, что TSQL не замкнут относительно своих операций. И что это ставит перед разработчиком необходимость писать 2 вида хранимых процедур - первый для вызова с "клиента" и второй для вызова с кода tsql. Конструкция INSERT ... EXEC... приведенная, кстати, вами как способ получения результатов работы ХП обладавает рядом недостатков и на универсальное решение претендовать не может. Что же до ваших ожиданий - imho, pkarklin, вы многовато на себя берете. pkarklin funikovyuri1. невозможно написать код который одинаково будет работать вне зависимости от того вызван он с клиента или из другого tsql кода. Возможно. И Вы это прекрасно знаете. Но Вы опять зациклились на возврате резалтсета из хп. В прощлый раз обсуждение этой темы как раз вылилось из моего заявления о неудобстве возврата набора данных из хп в Oracle через рефкурсор. Нет, не знаю. Более того - вы тоже не знаете и MS не знает - это факт. Напомню мы говорим о том что на TSQL код ХП который возвращает результат своей работы с помощью select "на клиента", т.е. не через output параметр типа курсор сложно использовать из другого кода на TSQL. Т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. pkarklin funikovyuri2. невозможно написать код который будет работать как в set xact_abort on так и в set xact_abort off Возможно, ибо управление этой опцией в Ваших руках. В хп, имеющей set xact_abort on, Вы можете вызвать хп, имеющую set xact_abort off. funikovyuri3. если код пишется для режима set xact_abort off и использует проверку кода ошибки после каждого выражения то такой код не будет работать как только его вызовут из кода в котором set xact_abort включен в on Прежде, чем что-то заявлять, стоит подумать или, хотя бы попробовать. Перечитайте мой предыдущий абзац. Угу, например, есть код написанный для off (процедура t1) и имеющий логику обработки тех или иных ошибок. Этот код вызывает ХП, которую написали для режима on (процедура t2). Так вот логика обработки ошибок в вызвавшем коде вызываться никогда не будет, т.к. как в случае ошибок в t2 MS SQL прервет батч и откатит транзакцию. В принципе, возможно, для когото это не проблема, но мне она нервы трепала не раз. Ну и сравнивать это все с нормальным механизмом обработки ошибок основанном на исключениях я бы не стал. (собственно если учесть что в MSSQL2005 они есть, MS тут придерживается того же мнения) pkarklin funikovyuri4. в tsql нет коллекций и локальных переменных Нет ни коллекций, ни глобальных переменных. За использование последних я бы вообще расстреливал. Первые, как уже указывалось, можно реализовать. Казалось вам можно просто согласиться... Реализовывать можно что угодно, но преимуществом я бы это не назвал. TSQL это не тот язык в котором удобно создавать свои коллекции ассоциативные массивы и другие подобные вещи. Про глобальные переменные - обычно их ругают за замусоривание глобальной области видимости - в Oracle это не так, т.к. переменные там ограничены областью видимости пакета. Так что это преимущество и imho неплохое pkarklin funikovyuri5. динамический sql выполняется только с правами вызывающего пользователя (это нельзя изменить) Это справедливо для версий до 2000. Слава Богу. ЗЫ насчет же отсутствия "глубинных недостатков" MS SQL - давайте закончим с TSQL потом поговорим о чем-нибудь еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 09:41 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuriУважаемый, если не затруднит покажите, где я написал что хочу Вот здесь. Microsoft задавит Oracle Не Вы ли вспомнили о "фиче", которая не позволяет вложенность? Не позволяет, значит нечего использовать. Неудобство - да. Данной конкретной реализации. Но из этого не слудет, что использование INSERT EXEC - повсеместная практика и единственный вариант обмена наборами между программными модулями на стороне сервера. funikovyuriЯ писал о том, что TSQL не замкнут относительно своих операций. И что это ставит перед разработчиком необходимость писать 2 вида хранимых процедур - первый для вызова с "клиента" и второй для вызова с кода tsql. У меня складывается такое впечатление, что Вы не читаете мои посты. Напишите вместо хп табличную функцию и используйте ее и с клиента и на стороне сервера. Вы упорно зациклились на хп с селектом. funikovyuriНапомню мы говорим о том что на TSQL код ХП который возвращает результат своей работы с помощью select "на клиента", т.е. не через output параметр типа курсор сложно использовать из другого кода на TSQL Точно - зациклились. Такое впечатление, что хп с селектом - это единственный в сиквел сервере способ "выдачи на гора" данных из программного модуля. funikovyuriНу и сравнивать это все с нормальным механизмом обработки ошибок основанном на исключениях я бы не стал. (собственно если учесть что в MSSQL2005 они есть, MS тут придерживается того же мнения) По поводу обработки ошибок в версии до 2005 уже только я не единожды высказывался, как о недостатке. Сколько еще раз можно об этом? funikovyuriЗЫ насчет же отсутствия "глубинных недостатков" MS SQL - давайте закончим с TSQL потом поговорим о чем-нибудь еще. Давайте. Вы начнете? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 10:39 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
funikovyuri wrote: > ЗЫ насчет же отсутствия "глубинных недостатков" MS SQL - давайте > закончим с TSQL потом поговорим о чем-нибудь еще. О превратностях климата? О войне с турками? Или, если угодно - о графе Калиостро? ;) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 11:41 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin funikovyuriУважаемый, если не затруднит покажите, где я написал что хочу Вот здесь. Microsoft задавит Oracle Не Вы ли вспомнили о "фиче", которая не позволяет вложенность? Не позволяет, значит нечего использовать. Неудобство - да. Данной конкретной реализации. Но из этого не слудет, что использование INSERT EXEC - повсеместная практика и единственный вариант обмена наборами между программными модулями на стороне сервера. pkarklin это не серьезно. Вам в хронологическом порядке привести ваши же высказывания? Я поинтересовался вот тут авторYukon уже позволяет по-человечески использовать результат вызова хранимой процедуры в вызвавшем ее tsql коде? Заметьте - я говорю про хранимые процедуры и только про них (табличные функции это отдельный разговор и они ХП заменить везде не могут - они не могут менять данные в таблицах). Т.е. я не "зациклился", я просто тока их и обсуждал и если бы вы не устраивали демагогию, то тема уже была бы закрыта. В ответ вы написали что человеческий способ есть и это exec into. Т.е. это предложенное вами решение поставленной проблемы. На это я напомнил про ограничения этого подхода в MS SQL 2k, которые делают обмен данными между ХП используя exec into затруднительным. В ответ вы нписали вот это pkarklinМать... Мать... Мать... :) Ну не используйте "ограниченную инструкцию" то? Возвращайте набор через курсор в выходном параметре. Т.е. сами же отвергли предложенное ранее вами же решение ;). А потом стали предлагать использовать табличные функции, которые во-первых не ХП, о которых мы говорим, а во-вторых не могут модифицировать базовые таблицы, а значит ХП заменить не могут. И при этом упрекаете меня в "зацикленности на ХП". ЗЫ И это я только про select\'ы в ХП ваши рассуждение привел. То же самое касается и всех остальных недостатков - вы сначало опровергаете мое утверждения, а затем пишите "уже не единожды высказывались, как о недостатке". imho У вас либо с совестью либо с логикой что-то не так. Я не вижу смысла что-либо серьезное обсуждать если даже на простейших и очевидных вещах вы срываетесь в постоянное передергивание и необъективность. pkarklinДавайте. Вы начнете? ;) Не не начну, у меня садо-мазо наклонностей нету, а дискуссия с вами просто требует их наличия. Так что если вы считаете что MSSQL БД №1 - флаг в руки и Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 12:34 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky> DDL в Oracle не транзакционны. Вот это и напрягает... А меня крайне напрягает то, что в MSSQL они транзакционны. И я очень расстроюсь, если Oracle сделает их таковыми. DDL в продакшн коде - абсурд. DDL не должен быть частью пользовательского кода, это инстурментарий разработчика и администратора. Вот представьте запускаете вы exe-файл, а он сам себя модифицировать начинает. И то, что для MSSQL этот абсурд является неотмлимой частью только доказывает, что с фундаментальным пониманием там не все гладко. Говорить о явном недостатке превознося его как достоинство... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 12:46 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey wrote: > А меня крайне напрягает то, что в MSSQL они транзакционны. И я очень > расстроюсь, если Oracle сделает их таковыми. > DDL в продакшн коде - абсурд. DDL не должен быть частью > пользовательского кода, это инстурментарий разработчика и > администратора. Вот представьте запускаете вы exe-файл, а он сам себя > модифицировать начинает. И то, что для MSSQL этот абсурд является > неотмлимой частью только доказывает, что с фундаментальным пониманием > там не все гладко. Говорить о явном недостатке превознося его как > достоинство... угу... а если у меня процедуры обработки генерятся по метаданным? Что МНЕ, РАЗРАБОТЧИКУ, делать? Убиваться об стену? Когда половина обработчиков - сгенерилась, половина - нет, и откат - невозможен? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34911634&tid=1553126]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 138ms |

| 0 / 0 |
