Światy: obiektowy i relacyjny nie pasują do siebie. Dlatego tak popularne są mappery obiektowo-relacyjne, dzięki którym życie staje się łatwiejsze. Ale jaki mapper wybrać?
Bazy danych i XML 4166 dni, 23 godziny, 46 minut temu 199 źrodło rozwiń
Witam pod długiej przerwie, dzięki za maile i pytania. Cieszę się, że blog ma aż takie zainteresowanie. Dzisiaj omówię banalnie prostą, ale często bardzo przydatną pod czas pisania zapytań klauzulę DISTINCT. Ma ona na celu wyeliminowanie z wyniku zapytania zdublowanych wierszy. Nie jest ważne czy wiersz składa się z jednego, czy więcej pól. Po prostu usuwa duble. Przykład użycia bez klauzuli DISTINCT: SELECT Nazwisko FROM NowaBaza.dbo.Osoba W wyniku pojawi się dwa razy nazwisko Czajka, Nowak oraz No...
Bazy danych i XML 4172 dni, 23 godziny, 42 minuty temu 148 źrodło rozwiń
autor: Ostatnio, podczas pracy z Unity 2.0 postanowiłem zaszaleć. Zamiast pisać klasę Bootstrapper’a i mapować implementacje na interfejsy w kodzie programu, zapragnąłem skonfigurować Unity przy pomocy pliku App.config. Dla niezorientowanych. Unity to kontener IoC od Microsoftu dostarczany razem z Enterprise Library. Proces konfiguracji Unity jest w miarę prosty. Ogranicza się do zdefiniowania aliasów, czyli skróconych nazw interfej...
Bazy danych i XML 4183 dni, 3 godziny, 41 minut temu 110 źrodło rozwiń
SQL Server Management Objects (SMO) zbiór bibliotek, a w nich klas dla platformy .NET, pozwalające na łatwe i proste zarządzanie bazą danych Microsoft SQL Server z poziomu kodu programu .NET (np. w językach takich jak C#, VB i innych). Zostały one wprowadzone po raz pierwszy z bazą danych Microsoft SQL Server 2005 (włącznie z wersją Express). Dostępne są również biblioteki SMO dla bazy danych MS SQL 2008. Dzięki wykorzystaniu SMO, można opracowywać aplikacji o funkcjonalności podobnej do Microsoft SQL ...
Bazy danych i XML 4183 dni, 19 godzin, 55 minut temu 44 źrodło rozwiń
Dzięki wykorzystaniu SMO (jeśli nie wiesz co to – przeczytaj wpis pt.:"Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)") można w prosty sposób wykonywać wiele operacji na bazie danych Ms SQL. Jedną z takich operacji może być usuwanie elementów bazy danych. W większości przypadków wystarczy na wybranym elemencie z bazy danych wykonać proste Drop, jednak nie zawsze musi się to udać.Taki przypadek może mieć właśnie miejsce z tabelami. Załóżmy, że chcemy usunąć wybraną tabelę...
Bazy danych i XML 4193 dni, 3 godziny, 41 minut temu 26 źrodło rozwiń
W VS 2010 możemy dodać Local Database do naszego projektu... Gdybyśmy teraz chcieli ją wykorzystać z poziomu SQL Server CE 4.0 to najprawdopodobniej dostaniemy taki o to błąd: The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method. Jest to spowodowane tym, iż dopiero VS 2010 SP1 będzie wspierał CE w wersji 4.0.
Bazy danych i XML 4193 dni, 4 godziny, 13 minut temu 87 źrodło rozwiń
Autor: We wpisie pt.: "Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)" przedstawiłem, jak można na podstawie DataSet'a stworzyć odpowiadającą mu bazę danych. Niestety nie wszystko zostało tam opisane i wykonane prawidłowo, o czym pisałem już we wpisie „Klucze obce, a relacje w DataSet'cie”. Kolejnym elementem, który wymaga dodania są ograniczenia (Constrains), a w szczególności ten wymuszający unikalność UniqueConstraint.Otóż tabela w DataSet'cie przechowuje informacje ...
Bazy danych i XML 4194 dni, 14 godzin, 18 minut temu 37 źrodło rozwiń
We wpisie pt.: "Jak DataSet’a przenieść do MsSQL'a? (SQLServer Management Objects i SqlBulkCopy)" przedstawiłem, jak można na podstawie DataSet'a stworzyć odpowiadającą mu bazę danych. Niestety wkradł się tam pewien „brak”. Mianowicie część relacji pomiędzy tabelami zostało pominiętych – w wytworzonych tabelach nie zostały wykorzystane klucze obce. Otóż dla każdej tabeli (DataTable) w DataSet'cie dostępne są relacje typu dzieci (właściwość ChildRelations) i rodzice (właściwość ParentRelations). Relacje...
Bazy danych i XML 4196 dni, 14 godzin, 13 minut temu 66 źrodło rozwiń
Dzisiaj przedstawię kilka przykładów użycia jednego z najbardziej podstawowych poleceń języka T-SQL czyli SELECT. Zakładam, że wykonaliście polecenia z poprzednich wpisów, ponieważ dzisiaj na ich wyniku będziemy działać. Otwieramy nowe zapytanie w SSMS – New Query i piszemy USE NowaBaza GO SELECT * FROM Osoba Uzyskamy w ten sposób całą zawartość naszej tabeli Osoba. (Po wciśnięciu Execute lub F5) Klauzula WHERE Jeżeli chcemy zaś ograniczyć zwrócone wiersze o pewien warunek dopisujemy klauzulę WHERE...
Bazy danych i XML 4200 dni, 19 godzin, 58 minut temu 58 źrodło rozwiń
W komentarzu do poprzedniego posta („SMO: sprawdzanie dostępnych serwerów MS SQL i automatyczna konstrukcja ConnectionString”), Paweł Łukasik (Pawlos) zapytał, czy jest jakaś różnica pomiędzy ServerConnection a SqlConnectionStringBuilder jeśli chodzi o tworzenie connection stringa? Przyjrzyjmy się temu tematowi trochę bliżej.W ramach .Net Framework dostępna jest klasa System.Data.Common.DbConnectionStringBuilder, która jest bazową klasą dla innych klas specjalistycznych (dla konkretnego typu bazy danych...
Bazy danych i XML 4201 dni, 7 godzin, 45 minut temu 65 źrodło rozwiń
Optymalizacja i inne ficzery, zachęcam do zapoznania się http://sqlday.pl/lang/pl-pl/materialy Kto nic nie zrozumiał, niech się nie martwi. W przyszłości poruszymy tematy poruszane na SQL Day 2010 Ten wpis został opublikowany dnia 6 lutego 2011, 20:21 i został umieszczony w SQL Server. Możesz odpowiedzieć na niego poprzez RSS 2.0. Możesz zostawić komentarz lub trackbacka ze swojej strony.
Bazy danych i XML 4203 dni, 14 godzin, 38 minut temu 54 źrodło rozwiń
Niezbędną kwestią jaką bezwzględnie trzeba opanować do perfekcji jest manipulacja danymi, czyli tak zwane operacje CRUD: CREATE (Insert) READ (Select) UPDATE DELETE Polecenie INSERT Do wstawienia danych do tabeli służy polecenie INSERT (ang. wstawiać) Jego podstawowa składnia wygląda następująco: INSERT [NazwaTabeli] (NazwaKolumny1, NazwaKolumny2, NazwaKolumny3) VALUES ('Wartość1, Wartość2, Wartość3) gdzie ilość wpisanych kolumn musi odpowiadać ilości wpisanych wartości. Należy pamiętać, że wartości...
Bazy danych i XML 4206 dni, 15 godzin, 37 minut temu 93 źrodło rozwiń
Ostatnio pokazałem jak można stworzyć bazę oraz tabele za pomocą designera – w skrócie, za pomocą klikania myszką. Dzisiaj przedstawię jak robić to z poziomu komend języka T-SQL. Na samym początku otwieramy SSMS oraz klikamy w przycisk „New Query”. Uzyskamy edytor, w którym będziemy pisać nasz kod. Poniżej zamieszczam kod tworzący nową bazę danych oraz tabelę Osoba, podobną do tej z poprzedniego wpisu. Kod należy skopiować* i wkleić do edytora a następnie wywołać przyciskiem Execute (ten z wykrzyknikie...
Bazy danych i XML 4207 dni, 19 godzin, 2 minuty temu 44 źrodło rozwiń
Dzisiaj napiszę coś o typach danych jakie możemy zdefiniować w kolumnach tworzonych tabeli. Ostatnio, tworząc tabelę Osoba użyliśmy typów liczbowych (ID, PESEL) oraz typu tekstowego (Imie, Nazwisko, Email…). Istnieją jeszcze inne typy danych, o których musimy wiedzieć. Są nimi wspomniane typy tekstowe:char(x) varchar(x) tekst nchar(x) nvarchar(x) ntext gdzie x to ilość przechowywanych znaków.* przedrostek n w ww. typach oznacza, że każdy znak zapisany jest na 2 bajtach pamięci (dwukrotnie więcej niż...
Bazy danych i XML 4210 dni, 21 godzin, 54 minuty temu 91 źrodło rozwiń
Autor: Jakiś czas temu, we wpisie związanym z SQLServer Management Objects (SMO), pod tytułem: „SMO i sprawdzanie, czy baza danych istnieje [PL]” otrzymałem komentarz, że warto wspomnieć o jeszcze innych możliwościach SMO, jak choćby listowanie instancji SQL Server: SmoApplication.EnumAvailableSqlServers(). W tym wpisie chciałbym właśnie wrócić do tego tematu.Otóż tak jak zostało to wspomniane statyczna funkcja SmoApplication.EnumAvailableSqlServers() potrafi dostarczyć listę instancji serwera Ms SQL. Mo...
Bazy danych i XML 4213 dni, 13 godzin, 46 minut temu 97 źrodło rozwiń
Aby rozpocząć uruchamiamy SQL Server Managament Studio* a następnie logujemy się do serwera. Klikamy prawym przyciskiem na folderze Databases a później wybieramy jej nazwę i zatwierdzamy przyciskiem OK. Po wykonaniu powyższych instrukcji uzyskamy pustą bazę zawierającą katalogi gdzie będą przechowywane:DiagramyTabeleWidokiSynonimyProgrammability (Procedury, Funkcje oraz inne)Service BrokerStorage**Security Dane przechowywane są w tabelach. Stwórzmy zatem naszą pierwszą tabelę zawierającą np. i...
Bazy danych i XML 4215 dni, 7 godzin, 52 minuty temu 98 źrodło rozwiń
Dzisiaj pokażę jak zainstalować silnik bazodanowy SQL Server. Do instalacji zalecam zupełnie darmową i funkcjonalną wersję 2008 R2 Express. * Instalkę pobieramy bezpośrednio ze strony http://www.microsoft.com/express/Database/ Klikamy pobierz wybierając wersję 32/64 bit w zależności od posiadanego systemu. Zanim jednak przystąpimy do instalacji należy pobrać jeszcze kilka narzędzi. Są nimi:Microsoft .NET Framework 3.5 SP1 – linkMicrosoft Windows Installer 4.5 – linkWindows PowerShell 1.0 – link Do...
Bazy danych i XML 4218 dni, 17 godzin, 58 minut temu 200 źrodło rozwiń
Czasami istnieje potrzeba sprawdzenia czy baza danych jest dostępna na serwerze Ms SQL Server. W tym celu można wykorzystać widok sys.databases, na którym można wykonać select'a i sprawdzić czy dana baza danych występuje na liście (np. „select * from sys.databases”). Zobaczmy jednak, jak to zrobić przy pomocy SMO.O SMO, czyli SqlServer Management Objects pisałem już wcześniej we wpisie dot. zagadnienia jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy), więc ...
Bazy danych i XML 4229 dni, 13 godzin, 59 minut temu 48 źrodło rozwiń
Celem mojego pierwszego wpisu dotyczącego NHibernate było krótkie wprowadzenie w świat tego ORM’a. Dziś przyszedł czas na trochę praktyki. Zaczniemy od prostej konfiguracji aplikacji (konsolowej), aby ta mogła połączyć się z bazą danych oraz automatycznie utworzyć w niej przykładową tabelę. Wykorzystamy do tego celu bibliotekę Fluent NHibernate, dzięki której, w przeciwieństwie do standardowej konfiguracji wykorzystującej pliki XML znanej z oryginalnego Hibernate’a, skonfigurujemy wszystko z poziomu kodu...
Bazy danych i XML 4229 dni, 13 godzin, 59 minut temu 175 źrodło rozwiń
Czy zastanawialiście się kiedyś jak dodawać parametry doSqlCommand? Klasa ta zawiera pole Parameters typy SqlParameterCollection, na którym możemy wykonać między innymi metodę AddWithValue(string, object). W internecie jak i w dokumentacji w nazwach parametrów na początku jest zawsze użyty znak “@”. Przy okazji jednego z projektów musiałem odpowiedzieć sobie na pytanie: Czy muszę zadbać o “@” przy nazwie parametru? Nie zastanawiając się długo postanowiłem, zgodnie duchem empiryzmu, sprawdzić co się stani...
Bazy danych i XML 4233 dni, 15 godzin, 28 minut temu 145 źrodło rozwiń