2014-12-30
Od lat kiedy chciałeś stworzyć pakiet Integration Services lub raport w Reporting Services lub kostkę w Analysis Services, korzystałeś z Visual Studio i dostępnych w nim szablonów, które pojawiały się po wykonaniu instalacji SQL Server z zaznaczonymi opcjami BIDS (Business Inteligence Development Studio – do SQL 2008 R2) lub SSDS (SQL Server Data Tools w wersji 2012). Jeśli na maszynie Visual Studio nie było zainstalowane, to instalator SQL doinstalowywał je.
Od wersji 2014 ten mechanizm się zmienia. SSDT nie instaluje się podczas standardowej instalacji. Pakiet należy ściągnąć. Do wyboru masz 2 możliwości:
I to właśnie ten drugi pakiet zawiera to, czego szukamy!
Pakiet wygląda i instaluje się jakby był to SQL Server 😉 Mma na myśli wygląd i początkowe ekrany kreatora instalacji. Jest jednak pewien kruczek… Podczas instalacji otrzymasz pytanie czy pakiet ma się zainstalować jako nowa instancja, czy jako dodatkowa funkcjonalność do istniejącej instancji. Zakładam, że wcześniej był już instalowany SQL, więc dość naturalne wydaje się wskazanie istniejącej instalacji (instancji). A to może być błąd. Prawdopodobnie instalując SQL zainstalowałeś go w wersji x64. Tymczasem pakiet SSDT-BI jest dostępny TYLKO w wersji 32-bitowej. Pakietu x64 nie ma!!! Wystarczy jednak podczas instalacji wybrać instalację „do nowej instancji” i problemu nie ma. Tymczasem SSDT-BI to tylko narzędzie, które może śmiało pracować z istniejącym SQL x64.
2014-12-27
Microsoft ogłosił wycofanie szkoleń z SQL 2012 i zastąpienie ich nowymi szkoleniami z SQL 2014. Oto skopiowana z artykułu tabelka ze starymi i nowymi szkoleniami:
| SQL Server 2012 Course# |
SQL Server 2012 Title |
SQL Server 2014 Course# |
SQL Server 2014 Title |
SQL Server Exam (in market) |
| 10774A |
Querying Microsoft SQL Server 2012 |
20461C |
Querying Microsoft SQL Server |
70-461 |
| 10775A |
Administering Microsoft SQL Server 2012 Databases |
20462C |
Administering Microsoft SQL Server Databases |
70-462 |
| 10777A |
Implementing a Data Warehouse with Microsoft SQL Server 2012 |
20463C |
Implementing a Data Warehouse with Microsoft SQL Server |
70-463 |
| 10776A |
Developing Microsoft SQL Server 2012 Databases |
20464C |
Developing Microsoft SQL Server Databases |
70-464 |
| 20465B |
Designing Database Solutions for SQL Server 2012 |
20465C |
Designing a Data Solution with Microsoft SQL Server |
70-465 |
| 10778A |
Implementing Data Models and Reports with Microsoft SQL Server 2012 |
20466C |
Implementing Data Models and Reports with Microsoft SQL Server |
70-466 |
| 20467B |
Designing Business Intelligence Solutions with Microsoft SQL Server 2012 |
20467C |
Designing Self-Service Business Intelligence and Big Data Solutions |
70-467 |
http://pages.email.microsoftemail.com/page.aspx?QS=38dfbe491fab00ea2a47f1ea8bd86c9a9fbfdac1c1554482f65d74c18d68d0fb&ArticleID=b9d251d5-598b-4b59-9e46-36dc33c437d0
2014-12-24

W Windows Server 2008 można było zmienić konfigurację Terminal Services tak, aby w przypadku braku aktywności użytkownika pulpitu zdalnego sesja nie została wylogowana, a wraz z tym, aby nie zostały pozamykane programy otwarte w tej sesji. Sesja mogła przejść w stan disconnected, aż wreszcie po upływie jeszcze dłuższego czasu mogło dojść do rzeczywistego wylogowania nieaktywnego użytkownika.

Narzędzie pozwalające na wykonanie takiej konfiguracji to Remote Desktop Session Host Configuration. Niestety w Windows Server 2012 to narzędzie zniknęło. Czytaj dalej »
2014-12-23
Aplikacja .NET C# powinna przeczytać i wyfiltrować zdarzenia z EventLog systemu lokalnego i zdalnego. Pomysł prosty, może można lepiej, ale składam zapytanie WMI, które następnie jest uruchamiane przez System.Management.ManagementObjectSearcher. Wygląda to mniej więcej tak (daty i inne wartości filtra zostawiam celowo „na sztywno”):
scope = new ManagementScope(„\\\\”+serverName+”\\root\\cimv2”);
scope.Connect();
query = „Select * from Win32_NTLogEvent Where Logfile = 'System’ AND TimeWritten >= '2014-12-01′ AND TimeWritten <=’2015-01-01′”;
query += ” AND EventCode = 7040 ” ;
query += ” AND SourceName = 'Service Control Manager”;
query+= ” AND Message LIKE '%SQL%'”;
Potem uruchomienie zapytania:
queryObj = new ObjectQuery(query);
eventsWMI = new System.Management.ManagementObjectSearcher(scope,queryObj);
foreach (System.Management.ManagementObject e in eventsWMI.Get())
{ //….
}
I…. błąd! Probemem okazały się daty. Niektóre systemy nie potrafią zrozumieć daty podanej napisami, tak jak zrobiłem to powyżej. Zmiana polega na wcześniejszym skonwertowaniu dat:
string wmi_startDate = System.Management.ManagementDateTimeConverter.ToDmtfDateTime(DateTime.Now.AddDays(-10));
string wmi_finishDate = System.Management.ManagementDateTimeConverter.ToDmtfDateTime(DateTime.Now);
Teraz zapytanie zmianiam na:
query = „Select * from Win32_NTLogEvent Where Logfile = 'System’ AND TimeWritten >= '” + wmi_startDate + „’ AND TimeWritten <='” + wmi_finishDate + „'”;
i to działa…. Super!
Pomogło: http://powershell.com/cs/blogs/tips/archive/2009/03/11/filtering-events-by-date-and-time.aspx
2014-12-17
Chcesz „na żywo” dzielić się kodem?
Wejdź na stronę:
http://www.codeshare.io/
Zostaniesz przekierowany na nieco inny adres, np. http://www.codeshare.io/7xwPk
Podaj ten adres tym, którzy razem z tobą tworzą kod i od tej pory macie wspólną „tablicę”, na której można wklejać kod!. Super!
2014-12-13
Aby włączyć lub wyłączyć synchronizację czasu z Internetem kliknij zegar wyświetlany na pasku zadań i wybierz „Zmień ustawienia daty i godziny”. Na ostatniej zakładce „Czas z Internetu” kliknij „Zmień ustawienia” i zaznacz lub odznacz pole „Synchronizuj z internetowym serwerem czasu”.

Domyślnie czas będzie synchronizowany co 7 dni czyli co 604800 sekund. Jeżeli chcesz zmienić ten interwał wpisz odpowiednią ilość sekund w rejestrze do klucza SpecialPollInterval w HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\TimeProviders\NtpClient:

2014-12-12
Oj zdarzało się walczyć z tym błędem… Ale dopiero teraz trafiłem na jakikolwiek opis znaczeń numerycznych kodów tego błedu. Znajduje się on na http://blitzkrieged5.rssing.com/chan-3991667/latest.php Żeby „nie uciekły” zamieszczam je niżej: Czytaj dalej »