Loading...
RoYaL avatar RoYaL Trainer 6849 Точки

[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 830 Точки

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

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

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

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

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

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

0
Filkolev avatar Filkolev 4482 Точки

Аз вчера забелязах, че на 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 Trainer 6849 Точки

@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 Trainer 6849 Точки

@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 830 Точки

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

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.