Strona głównaUżytkownik

pzielinski | użytkownik

pzielinski
pzielinski
27 178,29
4091 dni, 11 godzin, 40 minut temu
21 lutego, 2010
dotnetomaniak.pl

Czasami istnieje potrzeba reprezentacji drzewa za pomocą tabeli. Klasycznym przykładem jest hierarchia pracowników w firmie. Bardzo popularną reprezentacją jest:IDEMPLOYEE int, IDMANAGER int, Title nvarchar(50). IDEMPLYOEE jest oczywiście kluczem głównym, z kolei IDMANAGER stanowi klucz obcy wskazujący na IDEMPLOYEE. Przykład wypełnionej tabeli:IDEMPLOYEEID_MANAGERTitle1NULLProject Manager21Senior Software Developer32Junior Developer41Senior database developer Rozwiązanie jak najbardziej poprawne....

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Reprezentowanie struktur drzewiastych w SQL Server

Bazy danych i XML 5163 dni, 3 godziny, 36 minut temu pzielinski 63 źrodło rozwiń

Silnik Sql Server posiada kilka metod do pobierania daty i czasu. Część z nich jest już przestarzała i nie powinno się z nich korzystać. SQL Server 2008 wprowadził kilka dodatkowych funkcji: SYSDATETIME, SYSDATETIMEOFFSET, SYSUTCDATETIME. Wszystkie one pobierają czas z dokładnością do 100 nanosekund. Aby przekonać się co dokładnie zwracają najlepiej wywołać je:select SYSDATETIME() as'SYSDATETIME',SYSDATETIMEOFFSET() 'SYSDATETIMEOFFSET', SYSUTCDATETIME() as'SYSUTCDATETIME'; Jak widać SYSDATETIEM zwraca ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Metody pobierania daty i czasu w SQL Server

Bazy danych i XML 5170 dni, 16 godzin, 4 minuty temu pzielinski 40 źrodło rozwiń

Prawdopodobnie wszyscy znają już klauzulę group by w zapytaniach SQL – nie stanowi żadnej rewelacji. Myślę jednak, że znacznie mniej popularniejszą klauzulą jest GROUPING SETS. Rozważmy następujące zapytanie: selectfrom Products GROUPBY ProductCategory unionallselectfrom Products GROUPBY ProductSubcategory Zapytanie zwróci wiersze pogrupowane po kategorii produktu oraz podkategorii. Należy podkreślić, że grupowania wykonywane są niezależnie od siebie i nie mają charakteru hierarchicznego (tak jak to b...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » T-SQL i Grouping Sets

Bazy danych i XML 5177 dni, 3 godziny, 58 minut temu pzielinski 32 źrodło rozwiń

Dzisiejszy post ma charakter raczej ciekawostki– w praktyce nic przydatnego nie wnosi:). Wiemy, że wartości NULL mają specjalne znaczenie – podstawowe operacje matematyczne zachowują się inaczej niż na zwykłych liczbach. Podobnie jest z porównywaniem NULL ponieważ służy do tego specjalny operator (IS NULL). Istnieje jednak w SQL Server zmienna, której ustawienie pozwala porównywać wartości NULL za pomocą klasycznych operatorów ‘==’. Rozważmy następujące zapytanie:select*from Persons WHERE FirstName isnul...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Porównywanie wartości NULL w SQL Server

Bazy danych i XML 5178 dni, 19 godzin, 14 minut temu pzielinski 44 źrodło rozwiń

Czasami warto sprawdzić, czy wartości w podanych kolumnach zostały zmienione. Najłatwiejszym sposobem jest porównanie sumy kontrolnej. Jeśli stara wartość jest różna od aktualnej oznacza to, że któreś pole zostało zmienione. W T-SQL służy do tego funkcja CHECKSUMAGG:select CHECKSUMAGG(Credit) from Persons GROUPBY Persons Podobną funkcją jest CHECKSUM – liczy sumę kontrolną, jednak dla każdego wiersza a nie dla całych grup.Explore posts in the same categories:SQL Server This entry wa...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Suma kontrolna zwróconych wierszy

Bazy danych i XML 5181 dni, 21 godzin, 6 minut temu pzielinski 25 źrodło rozwiń

W SQL Server istnieje kilka narzędzi pozwalających określić wydajność wykorzystywanych zapytań. Podstawowym i najbardziej chyba znanym jest SQL Server Profiler. Można go włączyć z poziomu Sql Server Management Studio (menu główne->Tools->Sql Server Profiler). Po uruchomieniu pojawi się okienko w którym można określić m.in. zdarzenia, które powinny być monitorowane. Następnie aby rozpocząć analizę należy wybrać Start Selected Trace (ikonka zielonej strzałki w ToolBar). Od tego momentu wszelkie zapytania ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Analiza wydajności zapytań, część I

Bazy danych i XML 5183 dni, 23 godziny, 17 minut temu pzielinski 61 źrodło rozwiń

Często zdarza się, że mamy dwie takie same bazy: jedną lokalną do testów oraz drugą produkcyjną, umieszczoną na zdalnym hoście. Rozwijając aplikację, naturalne jest, że będziemy zmuszeni modyfikować bazę danych (dodanie nowych tabel, kolumn itp.). Wgrywając nową wersję na serwer łatwo zapomnieć o dokonanych zmianach na bazie. Na szczęście istnieją programy, które pozwolą nam zsynchronizować obydwie struktury. Jednym z nich jest dbForge Schema Compare for SQL Server. Po uruchomieniu programu i wybraniu op...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Porównywanie struktur baz danych

Czasami warto zasugerować użytkownikowi dozwolone wartości w TextBox. Przykładem jest pole edycyjne w Google, które pokazuje najczęściej wyszukiwane frazy. W tym poście stworzymy podobną kontrolkę, wykorzystując do tego bibliotekę jQuery. Całość działa oczywiście na Ajaxie. Użytkownik wpisuje jakieś wartości w polu, zapytanie jest w tle wysyłane do serwera a ten z kolei zwraca listę podpowiedzi. Należy wprowadzić również pewne opóźnienie przed dostarczeniem zapytania ponieważ w przeciwnym razie zostanie ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP.NET MVC – pole autocomplete czyli Text Field z sugerowanymi wartościami

Web 5187 dni, 2 godziny, 14 minut temu pzielinski 52 źrodło rozwiń

Często na stronie www chcemy umieścić elementy, które powinny być domyślnie zwinięte aby zajmowały mniej miejsca. Na przykład na tej stronie zdecydowałem, że filtrowanie wyników powinno domyślnie być schowane aby zajmowało mniej miejsca. Klikając na link “Pokaż\Ukryj” użytkownik może rozwinąć okno. Warto również zwrócić uwagę na animacje – okno nie pojawia się od razu ale stopniowo jest rozszerzane. Zaprezentowany wynik można łatwo uzyskać za pomocą biblioteki jQuery. Po ściągnięciu biblioteki oraz podłą...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Zwijanie oraz rozwijanie fragmentów strony www

Web 5199 dni, 23 godziny, 34 minuty temu pzielinski 66 źrodło rozwiń

W .NET mamy do dyspozycji funkcję Trim (string.Trim) służącą do usuwania pustych znaków (spacji) zarówno przed jak i po stringu. Przykład:string text=" jakiś tekst "; trimmedText=text.Trim(); // teraz trimmedText równy jest "jakiś tekst" Jak widać spację zostały usunięte. W T-SQL nie mamy dokładnie takiej samej funkcji ale łatwo uzyskać identyczny efekt za pomocą LTRIM oraz RTRIM:LTRIM(RTRIM(kolumna)) Najpierw usuwamy wszystkie znaki z prawej strony a potem dopiero z lewej. Można również napi...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Funkcja string.Trim a T-SQL

Bazy danych i XML 5202 dni, 22 godziny, 58 minut temu pzielinski 52 źrodło rozwiń

W poprzednich postach pokazałem jak tworzyć asynchroniczne formularze. Nie zawsze jednak chcemy wywoływać takie zapytania za pomocą przycisku Submit. Czasami lepiej użyć linku tekstowego lub po prostu obrazka. Ajaxowy link tekstowy bardzo łatwo utworzyć za pomocą metody ActionLink:

Tagi:
Dziel się z innymi:
ASP.NET MVC – obrazek jako link do asynchronicznego wywołania

Web 5205 dni, 9 godzin, 47 minut temu pzielinski 60 źrodło rozwiń

Podobnie jak w czystym ASP.NET, framework ASP.NET MVC pozwala na wysyłanie formularzy w tle. Załóżmy, że chcemy napisać shoutbox’a, w którym wysłanie wiadomości na serwer nie wymagałoby ponownego przeładowania całej strony. Zamiast definiowania formularza za pomocą Html.BeginForm, musimy skorzystać z Ajax.BeginForm:<%using(Ajax.BeginForm("AddMessage",new AjaxOptions(){ OnComplete="OnFinish", UpdateTargetId="messages"})) { %>// treść<%}%> Pierwszy parametr to nazwa akcji. W drugim parametrze prz...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP.NET MVC – asynchroniczne wysyłanie formularzy (AJAX) na przykładzie prostego ShoutBox’a

Web 5211 dni, 19 godzin, 5 minut temu pzielinski 108 źrodło rozwiń

Dzisiaj bardzo króciutki post. Do tabeli dodałem computed column (wartość liczona na podstawie innych kolumn). Formuła obliczająca wartość wyglądała następująco:VotesFor / TotalVoteCount Chciałem po prostu dodać kolumnę, która liczy procent oddanych głosów aby potem móc stworzyć indeks po tej kolumnie. W przypadku jednak gdy TotalVoteCount wynosi 0 pojawił się wyjątek Divide by Zero. Na szczęście funkcja NULLIF rozwiązała problem:VotesFor / NULLIF(TotalVoteCount,0) W sytuacji gdy TotalVoteCount rów...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » T-SQL i NULLIF

Bazy danych i XML 5212 dni, 20 godzin, 19 minut temu pzielinski 70 źrodło rozwiń

W jednym z poprzednich postów pokazałem jak zrealizować stronicowanie wyników. Kontrolka ListView z czystego ASP.NET miała jeszcze jedną zaletę – możliwość sortowania wyników po kolumnach. W dzisiejszym poście zaprezentuję sposób uzyskania takiego efektu w ASP.NET MVC w którym jak wiemy nie ma żadnych wbudowanych kontrolek.   Dla zwizualizowania, efekt końcowy pokazuję na powyższym screenie. Mamy kilka kolumn, które są linkami. Po kliknięciu na daną kolumnę chcemy aby wyniki były posortowane za pomocą ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP.NET MVC oraz sortowanie wyników po kolumnach

Web 5220 dni, 3 godziny, 36 minut temu pzielinski 71 źrodło rozwiń

Dziś pisząc pewien pakiet integracyjny (integration services) napotkałem na następujący błąd:Error: SSIS Error Code DTSECANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager 1" failed with error code 0xC00F9304. There may be error messages posted before this with more information on why the AcquireConnection method call failed. Stworzony pakiet składał się z Excel Source. Po odpaleniu wystąpił błąd właśnie na tym elemencie...

Tagi:
Dziel się z innymi:
Piotr Zieliński » Integration Services i błąd DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

Bazy danych i XML 5222 dni, 12 godzin, 21 minut temu pzielinski 19 źrodło rozwiń

W ASP.NET MVC nie ma wbudowanego wsparcia stronicowania dla wyświetlanych danych. W czystym ASP .NET mieliśmy do dyspozycji wiele zaawansowanych kontrolek, które wspierały mechanizm stronicowania (np. ListView). W ASP.NET MVC interfejs definiujemy za pomocą czystego HTML\XHTML i sami musimy zadbać o możliwość stronicowania. Nie jest to trudne ale wymaga jednak trochę nakładu pracy. Jeśli chcemy mieć elastyczną bibliotekę do obsługi stronicowania to implementacja jest już dość czasochłonna. Dlatego w tym ...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP.NET MVC i stronicowanie wyników

Web 5224 dni, 23 godziny, 16 minut temu pzielinski 83 źrodło rozwiń

Jakiś czas temu (kilka miesięcy;)) obiecywałem, ze napiszę artykuł o WCF Data Service. Zainteresowanych odsyłam tutaj.

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » WCF Data Services - artykuł

W poprzednim poście przedstawiłem metodę Html.Display. Funkcja Html.Editor(…) w działaniu jest bardzo podobna – również służy do generowania szablonów na podstawie klas. Różnica polega na tym, że Html.Editor tworzy pola edycyjne TextBox. Służy więc do generowania formularzy edycyjnych a nie do prezentowania danych tak jak Html.Display. Sposób wykorzystania jest analogiczny do DisplayFor więc zachęcam do przeczytania poprzedniego wpisu. Poniżej końcowy wynik: Warto wspomnieć, że również można tworzyć w...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP.NET MVC, Html.Editor(…), Html.EditorFor(…)

Web 5237 dni, 16 godzin, 54 minuty temu pzielinski 49 źrodło rozwiń

Podczas budowania formularzy często potrzebujemy wyświetlić zbiory danych. Załóżmy, że mamy klasę Contact zawierającą dane kontaktowe użytkownika (email, telefon, fax). W celu wyświetlenia informacji zawartych w klasie można oczywiście użyć zwykłych wywołań Html.Label np:Phone:<%=Model.Contact.Phone%>Email:<%=Model.Contact.Email%>Fax:<%=Model.Contact.Fax%> Metoda całkowicie poprawna jednak bardzo niewygodna – co jeśli do klasy dodamy nowe pole, np. MobilePhoneNumber? Oczywiście progr...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » ASP .NET MVC, Html.Display, Html.DisplayFor

Web 5239 dni, 3 godziny, 48 minut temu pzielinski 66 źrodło rozwiń

W poprzednim poście wyjaśniłem do czego służy klauzula WITH ROLLUP. Dzisiaj zajmiemy się bardzo podobnym mechanizmem – WITH CUBE. Najlepiej wyjaśnić to znów na przykładzie tabeli. Załóżmy, że mamy poniższe zapytanie:select StoreName,ProductType,sum(Number) from SoldProducts GROUPBY StoreName,ProductType W wyniku wykonania otrzymamy:StoreNameProductTypeSumaSklepA komputery1SklepAspożywka3SklepBkomputery4SklepBspożywka6 Jak wiemy z poprzedniego wpisu WITH ROLLUP umożliwi uzyskanie wyników hierarchiczn...

Tagi:
Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » GROUPBY i WITH CUBE

Bazy danych i XML 5242 dni, 13 godzin, 47 minut temu pzielinski 41 źrodło rozwiń

1 2... 15 16 17 18 19 20