LINQ jest potężnym rozszerzeniem .NET, umożliwiającym nam wykonywanie zapytań na kolekcjach obiektów co za tym idzie wybranie elmentu o ID 10 z kolekcji procownicy, staje się banalnie proste. Jednakże by LINQ zadziałało to musi istnieć jakiś provider, który przetłumaczy dane zapytanie na określony język - LINQ2SQL, LINQ2nHibernate itp. itd. Takich rozszerzeń jest masa i Charlie stara się trzymać ich listę up-to-date. Czy są to wszystkie aktualnie dostępne providery? Na pewno nie, jednakże lista jest pok...
Bazy danych i XML 766 dni, 2 godziny, 9 minut temu 35 rozwiń
Workstation ID i HOST_NAMEsobota, 20 marzec 2010 Kiedyś zostałem zmuszony do szybkiego, nawet bardzo szybkiego, zrealizowania zagadnienia: "archiwizacja poczynań użytkownika w systemie". Prościej rzecz ujmując, rejestracji 3 podstawowych operacji na każdej tabeli, a dokładniej jej wierszach, mianowicie: INSERT, UPDATE, DELETE. Poniżej zaprezentuję jak uporałem się z tym zagadnieniem. Zacznę więc od początku. Workstation ID - cóż to jest takiego? Jest to jeden z wi...
Bazy danych i XML 776 dni, 13 godzin, 16 minut temu 38 rozwiń
Próba zapisania obiektu naruszającego więzy integralności przy użyciu biblioteki NHibernate spowoduje wygenerowanie wyjątku GenericADOException. Dopiero sięgając do wartości właściwości InnerException możemy przekonać się, co jest przyczyną niepowodzenia. Istnieje jednak sposób na zastąpienie standardowego wyjątku własnym.
Bazy danych i XML 797 dni, 9 godzin, 27 minut temu 54 rozwiń
Oryginalny post: Maybe Normalizing Isn't Normal Autor: Jeff Atwood Jednym z problemów z jakimi mierzymy się teraz przy Stack Overflow jest utrzymanie wysokiego poziomu wydajności relacyjnej bazy danych, podczas gdy jej rozmiar znacząco rośnie. Bardziej precyzyjnie, chodzi o skalowanie naszego systemu tagów. Dobrze zaprojektowana baza danych to baza znormalizowana, tak mówią tradycyjne zasady projektowania. Niemniej jednak, ja nie jestem tego taki pewien. Dare Obasanjo opublikował świetny post pt. Kiedy...
Bazy danych i XML 799 dni, 12 godzin, 34 minuty temu 72 rozwiń
Ostatnio napotkałem problem, który powodował, że niektóre rekordy nie wyszukiwały się względem określonej wartości. Powodem okazała się zbyt duża liczba miejsc po przecinku wartości przechowywanej w kolumnie typu money. Nasuwa się tutaj pytanie: W jaki sposób szybko wyszukać rekordy w bazie danych, które posiadają wartość kwoty z dokładnością większą niż dwa miejsca po przecinku? Rozwiązanie było dosyć proste: ...
Bazy danych i XML 800 dni, 15 godzin, 17 minut temu 47 rozwiń
W każdy poniedziałek od 20:30 organizowane będą wirtualne spotkania. Pierwsze już się odbyło 15 lutego. Więcej na www.virtualstudy.pl
Bazy danych i XML 812 dni, 10 godzin, 34 minuty temu 64 rozwiń
Aby dołączyć do schematu naszej bazy tabele oraz funkcjonalność technologii .NET należy skorzystać z wiersza poleceń Visual Studio (w przypadku zainstalowanego Visual Web Developer Express należy doinstalować C++ 2008, aby się pojawiła konsola). Po uruchomieniu Visual Studio Command Prompt wpisujemy „aspnet_regsql.exe /?” w celu uzyskania szczegółowych informacji o dostępnych funkcjach. Uruchomienie narzę...
Bazy danych i XML 818 dni, 14 godzin, 36 minut temu 142 rozwiń
Czytamy sobie dokument, w którym napisane jest, że system będzie posiadał 3 bazy danych: jedną OLTP i dwie OLAP. Myślimy sobie od razu, że pewnie to jakiś wielki system za grube miliony. Jakież jest nasze zdziwienie, gdy okazuje się, że to mały “systemik”, a każda baza ma tak naprawdę po 3 tabele. Nasuwa się od razu pytanie — po co ta cała komplikacja? Czyż nie uczono nas na studiach, że baza ma by...
Bazy danych i XML 819 dni, 5 godzin, 26 minut temu 152 rozwiń
"Decimal byte array constructor requires an array of length four containing valid decimal bytes" Z takim błędem spotkałem się ostatnio pisząc kod komunikujący się z bazą danych. Niestety ale błąd ten miał również dwie utrudniające jego poprawienie właściwości. Po pierwsze pojawiał się na kilku komputerach ale nie na moim. No cóż syndrom "a u mnie działa" zdarza się każdemu. Po drugie kod w jakim występował zdawał się wyglądać całkowicie niewinnie...
Bazy danych i XML 827 dni, 7 godzin, 3 minuty temu 38 rozwiń
XLinq - Linq to XMLsobota, 29 sierpnia 2009 Wiele mówi się o technologii Linq (Wikipedia, MSDN), która jest częścią Framework'a 3.5. Tym samym nie jest trudno znaleźć przykłady wykorzystania tego cuda. W tym artykule chciałbym zaprezentować zapytania Linq do plików XML. Ich prostota w konstruowaniu oraz niesamowita efektywność w działaniu dają wiele możliwości zwolennikom formatu XML. Rozpocznę od przykładu deklaracji dokumentu XML. Składnia tworzenia owego obi...
Bazy danych i XML 834 dni, 12 godzin temu 128 rozwiń
Jeden z moich klientów korzysta z systemu Joomla i dodatku VirtueMart (moduł sklepu internetowego). Żeby uprościć jego obsługę pomyślałem nad napisaniem aplikacji do aktualizacji cen pobieranych z jakiegoś źródła. Aplikacja korzysta z DBLinq czyli Linq Provider for MySql, Oracle and PostgreSQL. Niestety DBLinq nie ma aktualnie żadnej dokumentacji. Za to znalazłem drobne informacje na stronie Primary Objects. Wykorzystałem wersję 0.18 która jest deprecated ponieważ z 0.19 miałem problem z wygenerowaniem...
Bazy danych i XML 838 dni, 10 godzin, 17 minut temu 60 rozwiń
XML jest uniwersalnym sposobem zapisu danych dzięki któremu możemy w łatwy sposób przechowywać niezbędne informacje. W dobie internetu jego popularność stała się ogromna, a sam język stał się standardem rekomendowanym między innymi przez W3C. Platforma .NET udostępnia nam wiele metod dzięki którym możliwe jest proste wykorzystanie XMLa w naszych aplikacjach. W tym tekscie postaram się krótko opisać sposób jego obsługi przy pomocy klasy XmlDocument oraz klas dziedziczących po XmlNode. Tworząc nowy obiekt...
Bazy danych i XML 840 dni, 9 godzin, 52 minuty temu 101 rozwiń
Ewolucyjne podejście do schematu baz danych Ten post chciałem napisać od czasu, gdy sprzedałem zawarty w nim pomysł Michałowi na jednym ze spotkań PG.NET w końcu się udało Jeśli myślisz, że raz stworzysz schemat bazy danych dla swojej aplikacji i już nigdy go nie będziesz zmieniać to jesteś w błędzie. W czasie produkcji może się okazać, że coś zostało pominięte, coś można rozwiązać lepiej, jest błąd albo po prostu trzeba dodać nową funkcjonalność wymagającą zmian w schemacie.
Bazy danych i XML 849 dni, 10 godzin, 25 minut temu 133 rozwiń
Dziś po chwili prób udało mi się stworzyć zewnętrzną funkcję dla bazy danych MSSQL 2005 za pomocą notatnika i kompilatora obsługiwanego z linii poleceń VBC.EXE. O ile samo stworzenie funkcji rozszerzającej możliwości bazy danych nie jest zbyt skomplikowane to zrobienie tego bez Visual Studio jest nieco karkołomne, gdyż w dzisiejszych czasach wszechobecnych kreatorów i szablonów możemy czuć się trochę zagubieni gdy ich nam zabraknie. Proces tworzenia rozpocząłem standardowo w Visual Studio i za pomocą kr...
Bazy danych i XML 855 dni, 3 godziny, 11 minut temu 61 rozwiń
Ayende pisze ostatnio na swoim blogu o przykładowej apllikacji w WPF używającej NHibernate o nazwie Effectus. Kod całej aplikacji można znaleźć na githubie. Moją uwagę zwrócił kod Bootstrappera, który zawiera ciekawy trick, a mianowicie serializowanie obiektu Configuration do pliku.
Bazy danych i XML 868 dni, 1 godzinę, 25 minut temu 95 rozwiń
W Oracle nie ma możliwości przechowywania wartości typu bool. Najbardziej powszechnym rozwiązaniem jest użycie kolumny typu CHAR(1) z wartościami 'Y' i 'N'. Autorzy NHibernate się na to przygotowali udostępniając typ YesNo. Mój przypadek był inny. Z bazy danych korzystała już aplikacja, która wartości typu bool zapisywała w kolumnach typu INT. Wartość true zdefiniowana była jako -1, wartość false - 0. Moja miała robić tak samo. Da radę. Tylko niestety trzeba się trochę napisać.
Bazy danych i XML 879 dni, 8 godzin, 37 minut temu 57 rozwiń
Na wss.pl pojawił się wątek dotyczący przekształcenia danych tabelarycznych ze strony HTML na tabelę w bazie danych. W dyskusji wyraziłem wątpliwość co do trywialności rozwiązania ze względu na fakt, że zawartość stron HTML odbiega znacznie od poprawnych dokumentów XML (a do zapisu do bazy danych chciałem wykorzystać możliwości XML w SQL Server). Jednak jak się okazało istnieje świetny helper do dokumentów HTML, który znajduje się pod tym adresem: htmlagilitypack. Jako cel swego przekształcenia wybrał...
Bazy danych i XML 883 dni, 7 godzin, 16 minut temu 39 rozwiń
Chciałbym przedstawić wykorzystanie SQLite w połączeniu z ADO.NET przy wykorzystaniu C#. Wymaga to jednak pewnego uzupełnienia.SQLite SQLite jest biblioteką napisaną w języku C, która implementuje silnik relacyjnej bazy danych. Jak głosi główne hasło projektu jest ona “prosta, szybka, niezawodna”. Cała baza znajduje się w pojedynczym pliku, a w przeciwieństwie do innych systemów baz danych, nie występuje tu żaden demon nią zarządzający. Inne cechy warte wymienienia:Mały rozmiar biblioteki (ok. 0.5MB), ...
Bazy danych i XML 891 dni, 15 godzin, 23 minuty temu 150 rozwiń
Na wss.pl pojawił się wątek dotyczący działań na typach datetime. Jeden z uczestników dyskusji stwierdził, że operacja odejmowania dwóch wartości datetime daje w wyniku czas. Jak pokazałem, zapytanie SELECT GETDATE() - GETDATE() daje w wyniku 1900-01-01 00:00:00.000 czyli nadal typ datetime (należało się tego spodziewać) a dopiero po jawnym zrzutowaniu na float widzimy numeryczną reprezentację z różnicy dat (dlaczego nie na time, o tym mała uwaga na końcu notki). Ale pomyślałem sobie, że w pewnych ...
Bazy danych i XML 896 dni, 16 godzin, 5 minut temu 88 rozwiń
Tworząc standardowe mapowania NHibernate za pomocą plików XML trzeba pamiętać o kilku rzeczach, które bardzo łatwo przeoczyć. Po ich przeoczeniu program nie działa i wywala błędy, a ich treść nie zawsze nakierowuje na przyczynę. Najlepszym tego przykładem jest chyba konieczność oznaczania plików mapowań jako "embedded resource". Fluent NHibernate znacznie upraszcza sprawę, ale i przy nim trzeba uważać. Czasami dostajemy wyjątek niekoniecznie mówiący prosto z mostu o co chodzi. Jak ciężarna 15-latka, któ...
Bazy danych i XML 898 dni, 16 godzin, 17 minut temu 90 rozwiń
Polecamy
Ostatnio na blogu
Polacy nie gęsi i swój języ...
Najaktywniejsi



