W poprzednim poście przybliżyłem nieco ideę zamieszczania w kodzie .NET transakcji. W tej odsłonie postaram się skupić na zagadnieniach nieco bardziej praktycznych. Z góry zapowiadam, że ze względu na ilość materiału ukaże się co najmniej jeszcze jedna odsłona. Jeśli chodzi o transakcje w ADO.NET, uwagę należy tutaj skupić na klasie SqlTransaction. Transakcję ropoczynamy wywołując na obiekcie SqlConnection metodę BeginTransa...
Bazy danych i XML 4986 dni, 2 godziny, 35 minut temu 132 źrodło rozwiń
autor: W nawiązaniu do mojego poprzedniego wpisu na blogu muszę niestety zlożyć małe sprostowanie. Tak zachwalałem zalety umieszczania serwisu na serwerze IIS, że uciekło mi to, że niestety z pomocą Visual Web Developer 2010 Express nie jest możliwe w tym przypadku debugowanie kodu. Wersja ta nie posiada bowiem bardzo ważnej opcji, jaką jest “Atach to process…”. Być może debugowanie z użyciem IIS tym razem w wersji Expres...
Bazy danych i XML 4986 dni, 8 godzin temu 127 źrodło rozwiń
Ś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 4993 dni, 23 godziny, 17 minut temu 202 ź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 4999 dni, 23 godziny, 14 minut temu 153 ź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 5010 dni, 3 godziny, 13 minut temu 112 ź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 5010 dni, 19 godzin, 26 minut temu 48 ź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 5020 dni, 3 godziny, 13 minut temu 29 ź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 5020 dni, 3 godziny, 44 minuty temu 89 ź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 5021 dni, 13 godzin, 49 minut temu 38 ź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 5023 dni, 13 godzin, 44 minuty temu 67 ź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 5027 dni, 19 godzin, 29 minut temu 59 ź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 5028 dni, 7 godzin, 16 minut temu 67 ź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 5030 dni, 14 godzin, 10 minut temu 55 ź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 5033 dni, 15 godzin, 9 minut temu 96 ź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 5034 dni, 18 godzin, 34 minuty temu 45 ź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 5037 dni, 21 godzin, 26 minut temu 92 ź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 5040 dni, 13 godzin, 17 minut temu 98 ź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 5042 dni, 7 godzin, 23 minuty temu 99 ź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 5045 dni, 17 godzin, 29 minut temu 202 ź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 5056 dni, 13 godzin, 30 minut temu 50 źrodło rozwiń