2013-08-21
W tym artykule pokażę, jak można z aplikacji w c# sięgać do bazy danych SQL. Artykuł jest częścią serii artykułów na ten temat prezentujących różne sposoby.
PRACA Z STRONGLY TYPED DATASET
Najpierw utwórz DataSet. Zakładam, że masz już serwer SQL i że na serwerze zdefiniowałeś odpowiednie tabele, może już nawet częściowo wypełniłeś je danymi.
Będąc w Visual Studio dodaj do swojego projektu DataSet:
Czytaj dalej »
2013-07-16
Tym razem na tapecie znowu Excel, a w nim wykres przestawny. Z tym, że chcemy, aby wykres przestawny (liniowy) składał się z kilku krzywych, a między nimi, aby pojawiły się przerwy. Coś w tym stylu:
Czytaj dalej »
2013-07-09
Wszyscy chcemy żeby nasze bazy danych działały idealnie i aby nic ich nie spowalniało. Jeśli mowa byłaby o samochodzie, to teraz opowiedziałbym o sprawdzaniu oleju, ciśnienia w kołach itp. Mowa jedanak o bazie danych. Oto co możesz zrobić, aby twojej bazie było lżej.
Jak pisałem w tym artykule możesz chwilowo (np. przed wykonaniem importu) wyłączyć constrainy. Dzięki temu import może wykonać się szybciej. Pamiętaj jednak, aby wyłączony constrain włączyć i to najlepiej z opcją WITH CHECK!
Opcja with check powoduje, że wszystkie dane znajdujące się w tabeli zostaną przed włączeniem check sprawdzone, czy aby na pewno nie naruszają zasad określonych przez check. Owszem – ryzykujesz. Jeżeli takie niepoprawne dane się znajdą, to otrzymasz komunikat o błędzie i nie uda się włączyć check-a. Musisz w takim przypadku usunąć rekordy naruszające zasady lub ręcznie je poprawić. Czytaj dalej »
2013-06-18
Zadanie:
Wykorzystując plik formatu należy zaimportować tylko niektóre kolumny i to jeszcze na dodatek zmieniając ich kolumny.
Załóżmy, że masz plik tekstowy opisany takim oto plikiem formatu:

Niestety tabela w bazie danych ma tylko dwie kolumny. Twoim zadaniem jest zaimportować GroupName do kolumny pierwszej w tabeli, a Name do drugiej kolumny:

W takim przypadku musisz zmienić plik formatu. Pod adresem http://msdn.microsoft.com/en-us/library/ms179250.aspx znalazłem ładny opis jak:
Czytaj dalej »
2013-06-18
Kilka przykładów importowania danych do SQL Server z plików tekstowych. W poniższych przykłądach wykorzystuję plik format file. Tutaj znajdziesz informację, jak go utworzyć.
1. Pobranie rekordów z pliku i zaimportowanie ich do tabeli w bazie danych:
BULK INSERT HumanResources.Department2
FROM 'C:\temp\dane.txt’
WITH (formatfile=’c:\temp\format.fmt’)
2. Wyświetlenie zawartości pliku tekstowego, jakby to była tabela:
SELECT a.* FROM OPENROWSET(BULK,’C:\temp\dane.txt, formatfile=’c:\temp\format.fmt’)
3. Wyświetlenie zawartości pliku tekstowego, w surowej postaci
SELECT CAST(a.kol1 AS VARCHAR(MAX)) FROM OPENROWSET(BULK,’C:\temp\dane.txt, SINGLE_BLOB) AS a(kol1)
2013-06-18
Niestety nie ma w SQL serwerze polecenia 🙁
ALTER INDEX ALL ON ALL REBUILD
Co możemy zrobić:
1. Skorzystać z kursora, który przechodzi przez rekordy sys.tables. Nie będę powtarzał czegoś co juz jest ładnie opisane, zapraszam na blog Pinal Dave: http://blog.sqlauthority.com/2009/01/30/sql-server-2008-2005-rebuild-every-index-of-all-tables-of-database-rebuild-index-with-fillfactor/
2. Skorzystać z nieco ukrytej procedury sp_MSforeachtable, którą kokładniej opisałem tu http://www.mobilo24.eu/wykonanie-czynnosci-dla-wielu-tabel-w-bazie-danych-lub-dla-wielu-baz-danych/ a z kolei pod tym adresem znajdziesz rozwiązanie problemu indeksowania z wykorzystaniem tej procedury: http://geekswithblogs.net/robz/archive/2009/06/09/sql-server-2005-sql-server-2008—rebuild-or-reorganize.aspx
3. Wyklikać sobie tzw Maintnance Plan, względnie zbudować go samodzielnie w Integration Services (Business Inteligence Management Studio).
2013-06-18
Próbowałem zrobić wydaje się prostą rzecz. Poprzez bcp wyeksportować dane w postaci czytelnego tekstu do pliku, przenieść plik na drugi serwer i tam go zaimportować.
Zacząłem od przygotowania format file (tutaj bazuję na bazie AdventureWorks2012):
bcp adventureworks2012.HumenResources.Department format null -f c:\temp\format.fmt -T
Kolejny krok to wyeksportowanie danych na jednym serwerze:
bcp AdventureWorks2012.HumanResources.Department out c:\temp\dane.txt -f c:\temp\format.fmt -T
Do tej pory wszystko było OK. (Na potrzeby testu możesz teraz zeskryptować tabelę HumanResources.Department, zmienić nazwę na Department2 i usunąć dla kolumny department ID modyfikator IDENTITY. Możesz także usunąć linijkę constraina PRIMARY KEY lub zmienić jego nazwę dopisując np „2”)
Teraz decydujący moment. Importujemy dane: Czytaj dalej »