Pokazywanie postów oznaczonych etykietą sql. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą sql. Pokaż wszystkie posty

środa, 23 lutego 2011

SMO podsumowanie oraz uzupełniony kod źródłowy dla: Jak DataSet’a przenieść do MsSQL'a? [PL]

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 Server Management Studio.

Wpisy związane z SQLServer Management Objects (SMO), pojawiały się już kilka razy na tym blogu:

środa, 16 lutego 2011

Usuwanie tabeli przy pomocy SMO [PL]

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ć.

wtorek, 15 lutego 2011

SMO, DataSet i UniqueConstraint [PL]

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.

piątek, 11 lutego 2011

Klucze obce, a relacje w DataSet'cie [PL]

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.

czwartek, 10 lutego 2011

DbConnectionStringBuilder i ferajna [PL]

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.

wtorek, 25 stycznia 2011

SMO: sprawdzanie dostępnych serwerów MS SQL i automatyczna konstrukcja ConnectionString [PL]

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.

poniedziałek, 10 stycznia 2011

SMO i sprawdzanie, czy baza danych istnieje [PL]

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.

wtorek, 4 stycznia 2011

Element 'DropDownList' ma wartość SelectedValue, która jest nieprawidłowa, ponieważ nie istnieje na liście elementów... [PL]

Jakiś czas temu był na tym blogu wpis dotyczący GridView i TemplateField, czyli sposobu wygodniejszą wizualizację i edycję danych tabelarycznych. W ten sposób łatwo można zamienić skomplikowane numeryczne identyfikatory (pochodzące z kluczy obcych) na dropdown-listy przedstawiające dane z innych tabel. Jednak co się stanie, gdy nasza kolumna z identyfikatorami dopuszcza wartości puste (NULL)? Otóż pojawi się wtedy „błąd serwera w aplikacji ....”. Zobaczmy jak sobie można z tym poradzić.

poniedziałek, 3 stycznia 2011

SqlBulkCopy i wyłączenie auto-inkrementacji w tabeli [PL]

Jakiś czas temu pisałem na temat jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy). W takim przypadku, gdy kolumna w tabeli w DataSet'cie ma ustawioną właściwość AutoIncrement, to należy w kolumnie w SQL serwerze ustawić Identity na true, oraz IdentityIncrement i IdentitySeed na odpowiednie im wartości (AutoIncrementStep i AutoIncrementSeed) pochodzącej ze źródłowej kolumny z tabeli z DataSet'a. Niestety w takim przypadku, podczas późniejszego ładowania danych do tabeli, kolumny danych korzystające z auto-inkrementacji (identity) mogą w efekcie być uzupełnione innymi danymi, niż wyglądało to w oryginalnym zestawie danych. Zobaczmy jak to można rozwiązać.

Posty powiązane / Related posts