Софтуерно Инженерство
Loading...
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

[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 на която тези настройки липсват или не водят до желания изход, да уведомят тук в темата.

7
Databases Basics 11/07/2015 15:12:53
nikola.m.nikolov avatar nikola.m.nikolov 832 Точки

В изпитните условия примерният отговор само в този вариант ли ще бъде? Надявам се, че ще има и вариант с Grid, защото с него е доста по-лесно човек да се ориентира в резултата. 

Вторият ми въпрос е след като в инструкциите пише, че може да се копира целия резултат със CTRL + A то значи ли, че judge очаква и броя affected rows?

1
11/07/2015 07:51:08
enevlogiev avatar enevlogiev 1169 Точки

Можеш едновременно да виждаш и Grid Results, и Text Results. По едните се ориентираш, другите копираш : )

0
nikola.m.nikolov avatar nikola.m.nikolov 832 Точки

В management studio-то знам как да си изкарам и едното и другото. Въпросът е как ще изглежда примерния изход в word документа от изпита. Доста по-лесно ще е ако има и screenshot от grid.

0
Filkolev avatar Filkolev 4428 Точки

Аз вчера забелязах, че на Text има някакво ограничение на дължината на реда и примерно като решавах последната задача от поправката - тази с json-a, в тестовия изход не се показваше целият стринг. Това също трябва да се има предвид.

1
SPPetrov avatar SPPetrov 43 Точки

Здравейте, и аз пробвах това преди малко с json-а, и го реже при text като изходен резултат (до-256 символа) въпреки. че е деклариран nvarchar(max). Когато взема резултата от grid-а е нормална дължината.

В този ред на мисли, ако в някоя клетка има текст с дължина над 256 символа, като се вземе резултата в текст и се пусне в judge-a, то съдържанието в тези клетки ще бъде отрязано ...

По отгоре в поста на @RoYaL в точка 2. на стъпките за необходимата промяна има:

Maximum number of characters displayed in each column:    256

може би тук трябва да се корегира на друга стойност

 

Максималната стойност която може да се даде е : 8192 

и сега излиза нормално целия json

3
11/07/2015 12:40:46
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

@SPPetrov

Благодаря за уточнението :) Не го бях съобразил това. Сложих още една стъпка и скрийншот в поста.

@nikola.m.nikolov

Judge-а ще очаква и affected rows-а, да. В word документа ще сложим и табличния вид.

4
11/07/2015 15:16:32
ibakyrdjiev avatar ibakyrdjiev 172 Точки

При мен при 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)

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

@ibakyrdjiev

Рестартира ли SQL Server Management Studio след като направи настройките?

1
ibakyrdjiev avatar ibakyrdjiev 172 Точки

Благодаря за съвета. След рестарт всичко е ок :)

0
Nexus avatar Nexus 119 Точки

Привет,

При така генерирана заявка :

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 точка (колкото дава тази заявка). Явно все още не ги очаква!

пс: Само за инфо.

Поздрави,

А.

0
11/07/2015 23:35:16
nikola.m.nikolov avatar nikola.m.nikolov 832 Точки

Е за старите изпити е ясно, че няма да има промяна и ще си очаква същия output. Промяната ще е за нашия изпит утре!

0