[Useful Info] Databases Exam - Нов начин за изходните данни
Здравейте,
За изпита по бази данни трябва да се изпращат само изходните данни. До момента използвахме практиката copy with headers. За съжаление на различните версии на SQL Server Management Studio (2008, 2012 и 2014) имат в някои случаи различни видове spacing-и и различна репрезентация на tab (\t) character-а.
За да предотвратим тази неконсистенция решихме да сменим начинът на пращане на изходните данни от grid view на Text view, което е Comma delimited. Т.е. резултатът е изцяло разделен със запетайки, без \t char между колоните.
Един примерен резултат би изглеждал така:
TeamName,HomeTeam,HomeGoals,AwayTeam,AwayGoals,MatchDate
Beroe,Litex,1,Beroe,1,2015-04-11 20:00:00.000
Beroe,Beroe,1,Lokomotiv (Sofia),4,2015-04-05 20:00:00.000
Beroe,CSKA,0,Beroe,0,2015-03-21 17:00:00.000
(3 row(s) affected)
Как се постига това?
Изискват се няколко семпли настройки на Management Studio.
1. Навигираме до Tools -> Options -> Query Results -> SQL Server -> Results to Text
2. Избираме от падащото меню горе в дясно Comma delimited
2.1. Променяме Maximum number of characters displayed in each column да бъде 8192
3. Пишем заявка
4. Кликаме иконката Results to text (или кликаме CTRL + T).
5. Execute-ваме заявката
6. Опционално можем да изберем от Tools -> Options -> Query Results -> SQL Server -> General ||| Default destination for results да бъде Results to text (така няма да се налага да кликаме Results to text всеки път)
След съответните стъпки, SQL Server Management Studio изисква рестарт.
Копирането се случва чрез избиране на целият изход и копирате, след това пействане в джъдж (CTRL+A, CTRL+C -> CTRL+V)
Моля, ако някой има версия на Management Studio на която тези настройки липсват или не водят до желания изход, да уведомят тук в темата.
Можеш едновременно да виждаш и Grid Results, и Text Results. По едните се ориентираш, другите копираш : )
В management studio-то знам как да си изкарам и едното и другото. Въпросът е как ще изглежда примерния изход в word документа от изпита. Доста по-лесно ще е ако има и screenshot от grid.
Аз вчера забелязах, че на Text има някакво ограничение на дължината на реда и примерно като решавах последната задача от поправката - тази с json-a, в тестовия изход не се показваше целият стринг. Това също трябва да се има предвид.
Здравейте, и аз пробвах това преди малко с json-а, и го реже при text като изходен резултат (до-256 символа) въпреки. че е деклариран nvarchar(max). Когато взема резултата от grid-а е нормална дължината.
В този ред на мисли, ако в някоя клетка има текст с дължина над 256 символа, като се вземе резултата в текст и се пусне в judge-a, то съдържанието в тези клетки ще бъде отрязано ...
По отгоре в поста на @RoYaL в точка 2. на стъпките за необходимата промяна има:
Maximum number of characters displayed in each column: 256
може би тук трябва да се корегира на друга стойност
Максималната стойност която може да се даде е : 8192
и сега излиза нормално целия json
@SPPetrov
Благодаря за уточнението :) Не го бях съобразил това. Сложих още една стъпка и скрийншот в поста.
@nikola.m.nikolov
Judge-а ще очаква и affected rows-а, да. В word документа ще сложим и табличния вид.
При мен при slect * from TeamMatches ми дава :
Id HomeTeamId AwayTeamId HomeGoals AwayGoals MatchDate LeagueId
----------- ----------- ----------- ----------- ----------- ----------------------- -----------
1 19 10 1 2 2015-03-22 16:00:00.000 1
2 17 13 2 3 2015-03-22 21:00:00.000 1
3 21 30 1 1 2015-03-22 00:00:00.000 4
4 10 28 NULL NULL 2015-09-18 00:00:00.000 NULL
5 24 57 NULL NULL NULL 3
6 40 43 0 0 2015-03-21 17:00:00.000 5
7 39 44 0 0 2015-03-22 13:00:00.000 5
8 41 42 0 0 2015-03-22 15:15:00.000 5
9 39 40 4 0 2015-04-04 20:00:00.000 5
10 44 42 0 1 2015-04-05 17:00:00.000 5
11 43 41 1 4 2015-04-05 20:00:00.000 5
12 40 44 0 0 2015-04-10 20:00:00.000 5
13 42 43 1 1 2015-04-11 20:00:00.000 5
14 39 41 0 0 2015-04-11 17:00:00.000 5
(14 row(s) affected)
@ibakyrdjiev
Рестартира ли SQL Server Management Studio след като направи настройките?
Благодаря за съвета. След рестарт всичко е ок :)
Привет,
При така генерирана заявка :
http://pastebin.com/DGQ24USY
На https://judge.softuni.bg/Contests/Practice/Index/71#0 или Databases Exam - 1 March 2015 / Problem 1. All Mountain Peaks
с "(48 row(s) affected)" - 0 точки. Без този ред 1 точка (колкото дава тази заявка). Явно все още не ги очаква!
пс: Само за инфо.
Поздрави,
А.
Е за старите изпити е ясно, че няма да има промяна и ще си очаква същия output. Промяната ще е за нашия изпит утре!