3. Załączniki
3.1. Tworzenie projektu internetowego za pomocą Visual Studio.net na platformie XP dla rodzin
Visual Studio.net umożliwia tworzenie różnych rodzajów projektów:

Aby utworzyć projekt aplikacji internetowej, zazwyczaj wybiera się typ [Application Web ASP.NET]. Ten typ projektu wymaga obecności lokalnego lub zdalnego serwera internetowego IIS. Jeśli pracujemy na komputerze z systemem Windows XP, serwer ten nie istnieje i nie ma możliwości jego zainstalowania. Nie można zatem utworzyć projektu typu [Application Web ASP.NET].
Można obejść tę przeszkodę, godząc się na kilka drobnych niedogodności. Wystarczy:
- użyć serwera WWW Cassini zamiast serwera IIS. Jest on dostępny bezpłatnie na stronie Microsoftu.
- użyć projektu [Bibliothèque de classes] zamiast projektu [Application Web ASP.NET]
Stwórzmy prosty projekt, który pokaże, jak to zrobić.
- utworzyć projekt [Bibliothèque de classes]
![]() | ![]() |
- usuń [Class1.vb]

- dodać nowy element do projektu typu [Fichier texte] i nazwać go [demo.aspx]:
![]() | ![]() |
- plik [demo.aspx] jest rozpoznawany jako strona internetowa i przypisany jest do niego edytor stron. Edytor ten posiada dwa panele:
- [design] do graficznego tworzenia strony
- [HTML] – umożliwiający dostęp do kodu strony HTML

- wybierz [Affichage/Code], aby wyświetlić część kodu strony VB. Nic się nie dzieje. Nie ma dostępu do kodu strony VB.
- przejdź do panelu [HTML] i wpisz kod, który połączy stronę [demo.aspx] z kodem [demo.aspx.vb]:

- poproś o wyświetlenie kodu kontrolnego powiązanego ze stroną za pomocą [Affichage code - F7]. Otrzymamy plik [demo.aspx.vb]:

- Strona [demo.aspx] jest teraz rozpoznawana jako strona internetowa [.aspx] z przypisanym kodem [.aspx.vb].
- Wróćmy do panelu [Design] z [demo.aspx] i narysujmy następującą stronę:

Strona zawiera tekst oraz komponent serwerowy typu [Label] o identyfikatorze [lblHeure].
- Przejdźmy do panelu [HTML]. Znajduje się tam następujący kod:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>
Ten kod jest niekompletny z punktu widzenia składni HTML. Uzupełnijmy go:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
<html>
<head>
<title>démo ASPX</title></head>
<body>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>
</body>
</html>
- Przejdźmy do kodu [demo.aspx.vb], aby wpisać tam kod kontrolny, który umieści godzinę w komponencie [lblHeure]. Zauważamy, że nie jest on rozpoznawany przez Intellisense, narzędzie wspomagające pisanie kodu.
- Zamknij pliki [demo.aspx] i [demo.aspx.vb], uprzednio je zapisując, a następnie otwórz je ponownie. Przejdź do kodu [demo.aspx.vb]. Tym razem komponent [lblHeure] z [demo.aspx] jest prawidłowo rozpoznawany przez Intellisense w kodzie [demo.aspx.vb]. Uzupełnij kod:

- wygenerować projekt za pomocą [Générer/Générer demo]. Jeśli generowanie przebiegnie pomyślnie, plik DLL zostanie wygenerowany w folderze [bin] projektu:

- Jesteśmy gotowi do testów. Konfigurujemy serwer Cassini (patrz następny akapit) w następujący sposób:

Cel skrótu do serwera Cassini jest zdefiniowany w następujący sposób:
"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
ścieżka do pliku wykonywalnego | |
ścieżka do folderu projektu internetowego Visual Studio | |
powiązana ścieżka wirtualna |
- Uruchom program Cassini. Jego ikona pojawi się na pasku zadań. Kliknij na nią prawym przyciskiem myszy i wybierz opcję [Show details], aby sprawdzić, czy serwer internetowy jest poprawnie skonfigurowany:

- W przeglądarce wywołajmy stronę, którą stworzyliśmy, wpisując adres URL [http://localhost/demo/demo.aspx]. Otrzymujemy następujący wynik:

Udało nam się stworzyć aplikację internetową w programie Visual Studio, korzystając z:
- projektu typu [bibliothèque de classes]
- serwera internetowego Cassini
Wiemy już, jak tworzyć aplikacje internetowe na komputerach, które nie mają serwera IIS, jak ma to miejsce w przypadku komputerów z systemem Windows XP w wersji domowej.
3.2. Gdzie można znaleźć serwer internetowy Cassini ?
Aby pracować z platformą .NET firmy Microsoft, można skorzystać z serwera internetowego Cassini. Jest on dostępny za pośrednictwem produktu o nazwie [WebMatrix], który stanowi bezpłatne środowisko do tworzenia stron internetowych na platformach .NET, dostępne na stronie URL:

Należy dokładnie postępować zgodnie z instrukcją instalacji produktu:
- pobierz i zainstaluj platformę .NET (wersja 1.1 z marca 2004 r.)
- pobierz i zainstaluj WebMatrix
- pobierz i zainstaluj MSDE (Microsoft Data Engine), który jest ograniczoną wersją serwera SQL.
Po zakończeniu instalacji produkt [WebMatrix] będzie dostępny w liście zainstalowanych programów:

Link [ASP.NET] Web Matrix uruchamia wersję deweloperską IDE oraz ASP.NET:

Link [Class Browser] uruchamia narzędzie do przeglądania klas .NET:

Aby przetestować instalację, uruchommy [WebMatrix]:
![]() |
Podczas pierwszego uruchomienia [WebMatrix] pyta o parametry nowego projet.C – jest to jego domyślna konfiguracja. Można go skonfigurować tak, aby nie wyświetlał tego okna dialogowego przy uruchomieniu. Osiągamy to za pomocą opcji [File/New File]. [WebMatrix] umożliwia tworzenie szkieletów dla różnych aplikacji internetowych. Powyżej w punkcie (1) określiliśmy, że chcemy utworzyć aplikację [ASP.ET Page], która jest stroną internetową. W punkcie (2) wskazujemy folder, w którym zostanie umieszczona ta strona internetowa. W punkcie (3) podajemy nazwę strony. Musi ona mieć rozszerzenie .aspx. Wreszcie w punkcie (4) określamy, że chcemy pracować w języku VB.NET, przy czym [WebMatrix] obsługuje również języki C# i J#. Po wykonaniu tych czynności [WebMatrix] wyświetla stronę edycji pliku [demo1.aspx]. Umieszczamy w niej następujący kod:

- Zakładka [Design] pozwala „narysować” stronę internetową, którą chcemy stworzyć. Odbywa się to podobnie jak w przypadku IDE służącego do tworzenia aplikacji dla systemu Windows.
- Projekt graficzny strony internetowej w [Design] wygeneruje kod HTML w zakładce [HTML]
- Strona internetowa może zawierać elementy sterujące generujące zdarzenia, na które należy zareagować, na przykład przycisk. Zdarzenia te będą obsługiwane przez kod VB.NET, który zostanie umieszczony w zakładce [Code]
- ostatecznie plik demo1.aspx jest plikiem tekstowym łączącym kod HTML i kod VB.NET, będącym wynikiem projektu graficznego wykonanego w [Design], kodu HTML, który można było ręcznie dodać w pliku [HTML], oraz kodu VB.NET umieszczonego w pliku [Code]. Cały plik jest dostępny w zakładce [All].
- Doświadczony programista ASP.ET może utworzyć plik demo1.aspx bezpośrednio w edytorze tekstowym, bez pomocy żadnego pliku IDE.
Wybierzmy opcję [All]. Widzimy, że [WebMatrix] wygenerował już kod:
<%@ Page Language="VB" %>
<script runat="server">
' Wstaw tutaj kod strony
'
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Wstaw tutaj treść -->
</form>
</body>
</html>
Nie będziemy tutaj próbować wyjaśniać tego kodu. Przekształcamy go w następujący sposób:
<html>
<head>
<title>Démo asp.net </title>
</head>
<body>
Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>
Powyższy kod stanowi połączenie kodu HTML oraz kodu VB.NET. Został on umieszczony w tagach <% ... %>. Aby wykonać ten kod, używamy opcji [View/Start]. [WebMatrix] uruchamia wówczas serwer WWW Cassini, jeśli nie jest on jeszcze uruchomiony

Można zaakceptować wartości domyślne proponowane w tym oknie dialogowym i wybrać opcję [Start]. Serwer WWW jest teraz aktywny. [WebMatrix] uruchomi następnie domyślną przeglądarkę na komputerze, na którym się znajduje, i wyświetli stronę URL http://localhost:8080/demo1.aspx:

Możliwe jest korzystanie z serwera Cassini poza [WebMatrix]. Plik wykonywalny serwera znajduje się w <WebMatrix>\<wersja>\WebServer.exe, gdzie <WebMatrix> to katalog instalacyjny [WebMatrix], a <version> to numer wersji:

Otwórzmy okno wiersza poleceń i przejdźmy do folderu serwera Cassini:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003 11:00 53 248 WebServer.exe
...
Uruchommy program [WebServer.exe] bez żadnych parametrów:
Pojawi się okno pomocy:

Aplikacja [WebServer], zwana również serwerem internetowym Cassini, obsługuje trzy parametry:
- /port: numer portu serwisu internetowego. Może to być dowolna wartość. Domyślnie jest to 80
- /path: fizyczna ścieżka do folderu na dysku
- /vpath: folder wirtualny powiązany z poprzednim folderem fizycznym. Należy zwrócić uwagę, że składnia nie brzmi /path=ścieżka, ale /vpath:ścieżka, w przeciwieństwie do tego, co podano w przykładzie [Example] w powyższym oknie pomocy.
Umieśćmy plik [demo1.aspx] w następującym folderze:

Powiążmy fizyczny katalog [d:\data\devel\webmatrix] z wirtualnym katalogiem [/webmatrix]. Serwer WWW można uruchomić w następujący sposób:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"
Serwer Cassini jest teraz aktywny, a jego ikona pojawia się na pasku zadań. Po dwukrotnym kliknięciu na nią:

wyświetlą się parametry uruchamiania serwera. Istnieje również możliwość zatrzymania serwera [Stop] lub ponownego uruchomienia serwera [Restart]. Po kliknięciu linku [Root URL] w przeglądarce wyświetla się katalog główny drzewa stron serwera:

Przejdźmy do linku [demos]:

a następnie link [demo1.aspx]:

Widać zatem, że jeśli fizyczny katalog P=[d:\data\devel\webmatrix] został powiązany z wirtualnym katalogiem V=[/webmatrix], a serwer działa na porcie 100, strona internetowa [demo1.aspx], znajdująca się fizycznie w [P\demos], będzie dostępna lokalnie poprzez URL [http://localhost:100/V/demos/demo1.aspx].
Aby uniknąć konieczności uruchamiania serwera Cassini za pośrednictwem okna DOS, można utworzyć skrót do pliku wykonywalnego serwera o właściwościach zbliżonych do poniższych:

"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\travail\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles" | |
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812" |
3.3. Gdzie znaleźć Spring?
Główna strona Springa to [http://www.springframework.org/]. Jest to strona poświęcona wersji Java. Wersja .NET, która jest obecnie w fazie rozwoju (kwiecień 2005 r.), znajduje się pod adresem [http://www.springframework.net/].

Strona pobierania znajduje się pod adresem [SourceForge]:

Po pobraniu powyższego pliku ZIP należy go rozpakować:

W niniejszym dokumencie wykorzystaliśmy wyłącznie zawartość folderu [bin]:

W projekcie Visual Studio wykorzystującym Spring należy zawsze wykonać dwie czynności:
- umieścić powyższe pliki w folderze [bin] projektu
- dodać do projektu odwołanie do zestawu [Spring.Core.dll]
3.4. Gdzie znaleźć Nunit?
Główna strona Nunit to [http://www.nunit.org/]. Wersja dostępna w kwietniu 2005 r. to 2.2.0:

Pobierz tę wersję i zainstaluj ją. Instalacja tworzy folder, w którym znajduje się graficzna wersja testowa:
To, co jest interesujące, znajduje się w folderze [bin]:


Strzałka powyżej wskazuje graficzne narzędzie testowe. Instalacja dodała również nowe elementy do repozytorium zestawów w programie Visual Studio, które teraz omówimy.
Utwórzmy następujący projekt w programie Visual Studio:

Testowana klasa znajduje się w pliku [Personne.vb]:
Public Class Personne
' pola prywatne
Private _nom As String
Private _age As Integer
' domyślny konstruktor
Public Sub New()
End Sub
' właściwości powiązane z polami prywatnymi
Public Property nom() As String
Get
Return _nom
End Get
Set(ByVal Value As String)
_nom = Value
End Set
End Property
Public Property age() As Integer
Get
Return _age
End Get
Set(ByVal Value As Integer)
_age = Value
End Set
End Property
' ciąg identyfikacyjny
Public Overrides Function tostring() As String
Return String.Format("[{0},{1}]", nom, age)
End Function
' metoda init
Public Sub init()
Console.WriteLine("init personne {0}", Me.ToString)
End Sub
' metoda close
Public Sub close()
Console.WriteLine("destroy personne {0}", Me.ToString)
End Sub
End Class
Klasa testowa znajduje się w [NunitTestPersonne-1.vb]:
Imports System
Imports NUnit.Framework
<TestFixture()> _
Public Class NunitTestPersonne
' obiekt testowany
Private personne1 As Personne
<SetUp()> _
Public Sub init()
' tworzymy instancję klasy Personne
personne1 = New Personne
' log
Console.WriteLine("setup test")
End Sub
<Test()> _
Public Sub demo()
' log ekranowy
Console.WriteLine("début test")
' inicjalizacja osoby1
With personne1
.nom = "paul"
.age = 10
End With
' testy
Assert.AreEqual("paul", personne1.nom)
Assert.AreEqual(10, personne1.age)
' log ekranowy
Console.WriteLine("fin test")
End Sub
<TearDown()> _
Public Sub destroy()
' monitorowanie
Console.WriteLine("teardown test")
End Sub
End Class
Należy zwrócić uwagę na kilka kwestii:
- metody posiadają atrybuty, takie jak <Setup()>, <TearDown()>, ...
- aby atrybuty te zostały rozpoznane, konieczne jest, aby:
- projekt odwołuje się do zestawu [nunit.framework.dll]
- klasa testowa importowała przestrzeń nazw [NUnit.Framework]
Odwołanie uzyskuje się poprzez kliknięcie prawym przyciskiem myszy na [References] w eksploratorze rozwiązań:
![]() | ![]() |

Zestaw [nunit.framework.dll] powinien znajdować się na wyświetlonej liście, jeśli instalacja zestawu [Nunit] przebiegła pomyślnie. Wystarczy dwukrotnie kliknąć na zestaw, aby dodać go do projektu:

Po wykonaniu tej czynności klasa testowa [NunitTestPersonne] musi zaimportować przestrzeń nazw [NUnit.Framework]:
Następnie należy rozpoznać atrybuty klasy testowej [NunitTestPersonne].
- atrybut <Test()> określa metodę, która ma zostać przetestowana
- atrybut <Setup()> oznacza metodę, która ma zostać wykonana przed każdą testowaną metodą
- atrybut <TearDown()> oznacza metodę, którą należy wykonać po każdej testowanej metodzie
- metoda Assert.AreEqual pozwala sprawdzić, czy dwie wartości są równe; istnieje wiele innych metod typu Assert.xx.
- Narzędzie NUnit zatrzymuje wykonywanie testowanej metody, gdy tylko metoda typu [Assert] zakończy się niepowodzeniem, i wyświetla komunikat o błędzie. W przeciwnym razie wyświetla komunikat o pomyślnym zakończeniu.
Skonfigurujmy nasz projekt tak, aby generował metodę DLL:

Wygenerowana metoda DLL będzie nosiła nazwę [nunit-demos-1.dll] i zostanie domyślnie umieszczona w folderze [bin] projektu. Wygenerujmy nasz projekt. W folderze [bin] otrzymujemy:

Uruchommy teraz narzędzie do testowania grafiki Nunit. Przypomnijmy, że znajduje się ono w katalogu <Nunit>\bin i nosi nazwę [nunit-gui.exe]. <Nunit> oznacza katalog instalacyjny pliku [Nunit]. Pojawi się następujący interfejs:

Skorzystajmy z opcji menu [File/Open], aby załadować pliki DLL i [nunit-demos-1.dll] z naszego projektu:

[Nunit] potrafi automatycznie wykryć klasy testowe znajdujące się w załadowanym pliku DLL. W tym przypadku wykrywa klasę [NunitTestPersonne]. Następnie wyświetla wszystkie metody tej klasy posiadające atrybut <Test()>. Przycisk [Run] pozwala uruchomić testy na wybranym obiekcie. Jeśli jest to klasa [NunitTestPersonne], testowane są wszystkie wyświetlone metody. Można zlecić testowanie konkretnej metody, zaznaczając ją i uruchamiając ją za pomocą [Run]. Zlećmy wykonanie klasy:

Pomyślny wynik testu metody jest oznaczony zieloną kropką obok nazwy metody w lewym oknie. Niepomyślny wynik testu jest oznaczony czerwoną kropką.
Okno [Console.Out] po prawej stronie pokazuje ekrany generowane przez testowane metody. W tym przypadku chcieliśmy śledzić przebieg testu:
- wiersz 1 pokazuje, że metoda atrybutu <Setup()> jest wykonywana przed testem
- wiersze 2–3 są generowane przez testowaną metodę [demo] (patrz kod powyżej)
- wiersz 4 pokazuje, że metoda atrybutu <TearDown()> jest wykonywana po zakończeniu testu
3.5. Gdzie znaleźć plik SGBD „ ” dla Firebirda?
Główna strona Firebirda to [http://firebird.sourceforge.net/]. Strona z plikami do pobrania zawiera następujące linki (kwiecień 2005 r.):

Należy pobrać następujące pliki:
plik SGBD dla systemu Windows | |
bibliotekę klas dla aplikacji .NET, która umożliwia dostęp do SGBD bez konieczności korzystania ze sterownika ODBC. | |
sterownik ODBC dla Firebird |
Zainstaluj te elementy. Plik SGBD jest zainstalowany w folderze, którego zawartość wygląda mniej więcej tak:

Pliki binarne znajdują się w folderze [bin]:

umożliwia uruchomienie/zatrzymanie pliku SGBD | |
klient liniowy służący do zarządzania bazami danych |
Należy zauważyć, że domyślnie administrator SGBD nosi nazwę [SYSDBA], a jego hasło to [masterkey]. W [Démarrer] zainstalowano następujące menu:

Opcja [Firebird Guardian] pozwala uruchomić/zatrzymać SGBD. Po uruchomieniu ikona SGBD pozostaje na pasku zadań systemu Windows:
![]() |
Aby tworzyć i obsługiwać bazy danych Firebird za pomocą klienta tekstowego [isql.exe], należy zapoznać się z dokumentacją dołączoną do produktu w folderze [doc]. Szybszym sposobem pracy z Firebird jest użycie klienta graficznego. Takim klientem jest IB-Expert, opisany w następnym akapicie.
3.6. Gdzie znaleźć IB- Expert?
Główna strona internetowa Firebirda to [http://www.ibexpert.com/]. Strona z plikami do pobrania zawiera następujące linki:

Należy wybrać bezpłatną wersję [Personal Edition]. Po jej pobraniu i zainstalowaniu otrzymujemy folder podobny do poniższego:

Plik wykonywalny to [ibexpert.exe]. Skrót jest zazwyczaj dostępny w menu [Démarrer]:

Po uruchomieniu program IBExpert wyświetla następujące okno:

Skorzystajmy z opcji [Database/Create Database], aby utworzyć bazę danych:

może to być [local] lub [remote]. W tym przypadku nasz serwer znajduje się na tym samym komputerze co [IBExpert]. Wybieramy zatem [local] | |
Aby wskazać plik bazy danych, należy użyć przycisku typu [dossier] w menu rozwijanym. Firebird umieszcza całą bazę danych w jednym pliku. Jest to jedna z jego zalet. Bazę danych można przenieść z jednego komputera na drugi poprzez zwykłe skopiowanie pliku. Rozszerzenie [.gdb] jest dodawane automatycznie. | |
SYSDBA jest domyślnym administratorem w aktualnych dystrybucjach Firebirda | |
masterkey to hasło administratora SYSDBA w aktualnych dystrybucjach Firebirda | |
dialekt, którego należy używać: SQL | |
jeśli pole jest zaznaczone, IBExpert wyświetli link do utworzonej bazy danych po jej utworzeniu |
Jeśli po kliknięciu przycisku tworzenia [OK] pojawi się następujące ostrzeżenie:

oznacza to, że nie uruchomiono programu Firebird. Należy go uruchomić. Pojawi się nowe okno:

[IBExpert] obsługuje różne pliki SGBD pochodzące z Interbase. Wybierz zainstalowaną wersję Firebirda |
![]()
Po zatwierdzeniu tego nowego okna przez [Register] otrzymujemy następujący wynik:

Aby uzyskać dostęp do utworzonej bazy danych, wystarczy dwukrotnie kliknąć jej link. IBExpert wyświetla wówczas drzewo, umożliwiające dostęp do właściwości bazy danych:

Utwórzmy tabelę. Klikamy prawym przyciskiem myszy na [Tables] i wybieramy opcję [New Table]. Pojawia się okno definiowania właściwości tabeli:
![]() |
Zacznijmy od nadania tabeli nazwy [ARTICLES], korzystając z pola wprowadzania danych [1]:
![]() |
Skorzystajmy z pola wprowadzania danych [2], aby zdefiniować klucz główny [ID]:
![]() |
Pole można ustawić jako klucz główny, klikając dwukrotnie pole [PK] (Primary Key) w danym polu. Dodajmy pola za pomocą przycisku [3]:

Dopóki nie „skompilujemy” naszej definicji, tabela nie zostanie utworzona. Użyjmy powyższego przycisku [Compile], aby zakończyć definiowanie tabeli. IBExpert przygotowuje zapytania SQL służące do wygenerowania tabeli i prosi o potwierdzenie:

Co ciekawe, IBExpert wyświetla zapytania SQL, które wykonał. Pozwala to na zapoznanie się zarówno z językiem SQL, jak i z ewentualnie stosowanym, zastrzeżonym dialektem SQL. Przycisk [Commit] służy do zatwierdzenia bieżącej transakcji, a [Rollback] – do jej anulowania. W tym przypadku akceptujemy ją za pomocą [Commit]. Po wykonaniu tej czynności IBExpert dodaje utworzoną tabelę do struktury drzewa naszej bazy danych:

Po dwukrotnym kliknięciu na tabelę uzyskujemy dostęp do jej właściwości:

Panel [Constraints] pozwala nam dodać nowe ograniczenia integralności do tabeli. Otwórzmy go:

Widzimy tu utworzone przez nas ograniczenie klucza głównego. Możemy dodać inne ograniczenia:
- klucze obce [Foreign Keys]
- ograniczenia integralności pól [Checks]
- ograniczenia unikalności pól [Uniques]
Należy zaznaczyć, że:
- pola [ID, PRIX, STOCKACTUEL, STOKMINIMUM] muszą być większe od 0
- pole [NOM] musi być niepuste i unikalne
Otwórzmy panel [Checks] i kliknijmy prawym przyciskiem myszy w obszarze definiowania ograniczeń, aby dodać nowe ograniczenie:

Zdefiniujmy żądane ograniczenia:

Należy zauważyć, że w powyższym przykładzie ograniczenie [NOM<>''] wykorzystuje dwa apostrofy, a nie cudzysłowy. Skompilujmy te ograniczenia za pomocą przycisku [Compile] powyżej:

Również w tym przypadku IBExpert pełni funkcję edukacyjną, wskazując zapytania SQL, które wykonał. Przejdźmy teraz do panelu [Constraints/Uniques], aby wskazać, że nazwa musi być unikalna:

Zdefiniujmy ograniczenie:

Skompilujmy ją. Po zakończeniu otwórzmy panel [DDL] w tabeli [ARTICLES]:

Panel ten podaje kod SQL służący do wygenerowania tabeli wraz ze wszystkimi jej ograniczeniami. Kod ten można zapisać w skrypcie, aby móc go później ponownie uruchomić:
SET SQL DIALECT 3;
SET NAMES NONE;
CREATE TABLE ARTICLES (
ID INTEGER NOT NULL,
NOM VARCHAR(20) NOT NULL,
PRIX DOUBLE PRECISION NOT NULL,
STOCKACTUEL INTEGER NOT NULL,
STOCKMINIMUM INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);
Nadszedł czas, aby wprowadzić dane do tabeli [ARTICLES]. W tym celu skorzystajmy z jej panelu [Data]:

Dane wprowadza się poprzez dwukrotne kliknięcie pól wprowadzania danych w każdym wierszu tabeli. Nowy wiersz dodaje się za pomocą przycisku [+], a wiersz usuwa się za pomocą przycisku [-]. Operacje te są wykonywane w ramach transakcji, którą zatwierdza się przyciskiem [Commit Transaction]. Bez tego zatwierdzenia dane zostaną utracone.
IBExpert umożliwia generowanie zapytań SQL za pomocą opcji [Tools/SQL Editor] lub [F12]. Uzyskuje się wówczas dostęp do zaawansowanego edytora zapytań SQL, za pomocą którego można odtwarzać zapytania. Są one zapisywane w pamięci, co pozwala na powrót do już odtworzonego zapytania. Oto przykład:

Uruchamiamy zapytanie SQL za pomocą przycisku [Execute] powyżej. Otrzymujemy następujący wynik:

Na tym zakończymy nasze demonstracje. Połączenie IBExpert i Firebird doskonale nadaje się do nauki obsługi baz danych.
3.7. Instalacja i korzystanie ze sterownika ODBC dla [Firebird]
3.8. Instalacja sterownika
Link [firebird-odbc-provider] na stronie pobierania [Firebird] (punkt 3.5) umożliwia dostęp do sterownika ODBC. Po jego zainstalowaniu pojawi się on na liście zainstalowanych sterowników ODBC.
3.9. Utwórz źródło ODBC
- uruchom narzędzie [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

- Pojawi się następujące okno:

- Dodajmy [Add] jako nowe źródło danych systemowych (panel [System DSN]), które powiążemy z bazą Firebird utworzoną w poprzednim akapicie:

- Najpierw musimy określić sterownik ODBC, którego chcemy użyć. Powyżej wybieramy sterownik dla Firebirda, a następnie wykonujemy [Terminer]. Następnie uruchamia się kreator sterownika ODBC dla Firebirda:

- wypełniamy poszczególne pola:

nazwa DSN źródła ODBC – może być dowolna | |
nazwa pliku Firebird BD, który ma zostać przetworzony – należy użyć [Browse], aby wskazać odpowiedni plik .gbd | |
identyfikator do użycia przy logowaniu się do bazy | |
hasło powiązane z tym identyfikatorem |
Przycisk [Test connection] pozwala sprawdzić poprawność podanych przez nas informacji. Przed jego użyciem należy uruchomić SGBD [Firebird]:

- zatwierdzić kreatora ODBC, wykonując [OK] tyle razy, ile to konieczne
3.10. Przetestuj plik źródłowy ODBC
Istnieje wiele sposobów sprawdzenia poprawności działania pliku źródłowego ODBC. W tym przypadku użyjemy programu Excel:

- skorzystajmy z powyższej opcji [Données -> Données externes -> Créer une requête]. Pojawi się pierwsze okno kreatora definiowania źródła danych. W panelu [Bases de données] wyświetlona jest lista źródeł ODBC obecnie zdefiniowanych na komputerze:

- Wybierzmy źródło ODBC [odbc-firebird-articles], które właśnie utworzyliśmy, i przejdźmy do następnego kroku za pomocą [OK]:

- w tym oknie wyświetlona jest lista tabel i kolumn dostępnych w źródle ODBC. Wybieramy całą tabelę:

- przejdźmy do kolejnego etapu z [Suivant]:

- Ten etap pozwala nam filtrować dane. W tym przypadku nie stosujemy żadnego filtrowania i przechodzimy do kolejnego etapu:

- Ten etap pozwala nam sortować dane. Nie robimy tego i przechodzimy do następnego etapu:

- W ostatnim etapie pojawia się pytanie, co chcemy zrobić z danymi. W tym przypadku wysyłamy je do programu Excel:

- W tym miejscu program Excel pyta, gdzie chcemy umieścić pobrane dane. Umieszczamy je w aktywnym arkuszu, zaczynając od komórki A1. Dane są następnie pobierane do arkusza programu Excel:

Istnieją inne sposoby sprawdzenia poprawności źródła ODBC. Można na przykład skorzystać z bezpłatnego pakietu OpenOffice dostępnego na stronie URL [http://www.openoffice.org]. Oto przykład z tekstem OpenOffice:
![]() | ![]() |
- Ikona po lewej stronie okna OpenOffice umożliwia dostęp do źródeł danych. Interfejs zmienia się wówczas, wyświetlając obszar zarządzania źródłami danych:

- jedno źródło danych jest wstępnie zdefiniowane – źródło [Bibliography]. Kliknięcie prawym przyciskiem myszy na obszarze źródeł danych pozwala utworzyć nowe źródło za pomocą opcji [Gérer les sources de données]:

- Kreator [Gestion des sources de données] umożliwia tworzenie źródeł danych. Kliknięcie prawym przyciskiem myszy w obszarze źródeł danych pozwala utworzyć nowe źródło przy użyciu opcji [Nouvelle source de données]:

dowolna nazwa. W tym przypadku przyjęto nazwę źródła ODBC | |
OpenOffice obsługuje różne typy plików BD poprzez JDBC, ODBC lub bezpośrednio (MySQL, Dbase, ...). W naszym przykładzie należy wybrać plik ODBC | |
przycisk po prawej stronie pola wprowadzania danych umożliwia dostęp do listy źródeł ODBC na komputerze. Wybieramy źródło [odbc-firebird-articles] |
- przechodzimy do panelu [ODBC], aby zdefiniować użytkownika, pod którego tożsamością zostanie nawiązane połączenie:

właściciel źródła ODBC |
- przechodzimy do panelu [Tables]. Wymagane jest podanie hasła. Tutaj jest to [masterkey]:

- wykonujemy [OK]. Wyświetla się wówczas lista tabel źródła ODBC:

- można zdefiniować tabele, które zostaną wyświetlone w dokumencie [OpenOffice]. W tym przypadku wybieramy tabelę [ARTICLES] i wpisujemy [OK]. Definicja źródła danych została zakończona. Pojawia się ona następnie na liście źródeł danych aktywnego dokumentu:

- można przeciągnąć myszką tabelę [ARTICLES] znajdującą się powyżej do tekstu [OpenOffice]:

3.11. Ciąg połączenia źródła ODBC Firebird
- uruchom Visual Studio i wyświetl eksplorator serwerów [Affichage/Explorateur de serveurs]:
![]() |
- kliknij prawym przyciskiem myszy na [Connexion de données] i wybierz opcję [Ajouter une connexion]:

- w panelu [Provider] należy wskazać, że chcemy użyć źródła ODBC (patrz powyżej), a następnie przejść do panelu [Connection]:

wybrać źródło ODBC z listy rozwijanej. Powinno pojawić się właśnie utworzone źródło. W razie potrzeby należy użyć [Refresh], aby odświeżyć listę źródeł ODBC. | |
identyfikator do użycia przy logowaniu się do bazy | |
hasło powiązane z tym identyfikatorem |
Również w tym przypadku przycisk [Test Connection] pozwala sprawdzić poprawność danych:

- potwierdź działanie kreatora za pomocą [OK]. Źródło danych pojawi się wówczas w oknie [Explorateur de serveurs] programu Visual Studio:

- po dwukrotnym kliknięciu tabeli [ARTICLES] uzyskuje się dostęp do danych z tabeli:

- jeśli klikniemy prawym przyciskiem myszy na link [Firebird Server D:\temp\... ] i wybierzemy opcję [Propriétés], uzyskamy dostęp do właściwości połączenia:

- Ciekawą właściwością, o której warto wiedzieć, jest ciąg połączenia [ConnectString], ponieważ kod .NET potrzebuje go do nawiązania połączenia z bazą danych. W tym przypadku ciąg połączenia to:
Provider=MSDASQL.1;Persist Security Info=False;User ID=SYSDBA;Data Source=demo-odbc-firebird;Extended Properties="DSN=demo-odbc-firebird;Driver=Firebird/InterBase(r) driver;Dbname=D:\temp\07-04-05\firebird\DBARTICLES.GDB;CHARSET=NONE;UID=SYSDBA"
Wiele elementów tego ciągu połączenia ma wartości domyślne. Wystarczy użyć następującego ciągu połączenia:
To kończy naszą prezentację sterownika ODBC z pakietu [Firebird].
3.12. Gdzie można znaleźć sterowniki SGBD MSDE?
MSDE to bezpłatna wersja serwera SGBD i SQL firmy Microsoft. Można go znaleźć na stronie URL i [http://www.microsoft.com/sql/msde/downloads/download.asp]:
![]() |
![]() | ![]() |
Pobierz plik instalacyjny, a następnie zainstaluj SGBD, klikając dwukrotnie pobrany plik wykonywalny. Pojawi się okno z prośbą o wskazanie folderu instalacyjnego. Nazwa folderu jest myląca. Jest to folder tymczasowy, który można później usunąć:
![]() | ![]() |
Należy uważnie zapoznać się z plikiem [ReadmeMSDE2000A.htm]. Program instalacyjny to wspomniany powyżej plik [setup.exe]. Uruchamia się on z wiersza poleceń, co pozwala na przekazywanie mu parametrów. Najważniejsze z nich to:
Opis | |
| Określa silne hasło, które ma zostać przypisane do konta administratora „sa”. |
| Określa nazwę instancji. Jeśli nie podano wartości INSTANCENAME, program instalacyjny zainstaluje instancję domyślną. |
Inne parametry często używane do dostosowania instalacji to:
Opis | |
| Określa, czy instancja będzie akceptować połączenia sieciowe z aplikacji uruchomionych na innych komputerach. Domyślnie lub w przypadku podania wartości DISABLENTWORKPROTOCOL=1 instalator konfiguruje instancję tak, aby odrzucała połączenia sieciowe. Aby włączyć połączenia sieciowe, należy podać wartość DISABLENETWORKPROTOCOLS=0. |
Określa, że instancja ma zostać zainstalowana w trybie mieszanym, co oznacza, że instancja obsługuje uwierzytelnianie systemu Windows oraz uwierzytelnianie SQL dla połączeń | |
| Określa folder, w którym instalator instaluje bazy danych systemowe, dzienniki błędów i skrypty instalacyjne. Wartość podana dla chemin_dossier_données musi kończyć się odwróconym ukośnikiem (\). W przypadku instancji domyślnej instalator dodaje MSSQL\ do podanej wartości. W przypadku instancji nazwanej instalator dodaje MSSQL$NomInstance\, gdzie NomInstance to wartość określona za pomocą parametru INSTANCENAME. Program instalacyjny tworzy trzy foldery w określonej lokalizacji: folder „Data”, folder „Log” oraz folder „Script”. |
| Określa folder, w którym instalator instaluje pliki wykonywalne programu MSDE 2000. Wartość podana dla chemin_dossier_exécutables musi kończyć się odwróconym ukośnikiem (\). W przypadku instancji domyślnej instalator dodaje do podanej wartości ścieżkę MSSQL\Binn. W przypadku instancji nazwanej instalator dodaje MSSQL$NomInstance\Binn, gdzie NomInstance jest wartością określoną za pomocą parametru INSTANCENAME. |
Po zapoznaniu się z powyższymi zaleceniami dotyczącymi instalacji przechodzimy do folderu, do którego zostały rozpakowane pliki instalacyjne, i wydajemy następujące polecenie DOS (użycie SGBD bez sieci):
- INSTANCENAME="MSDE140405" – będzie to nazwa naszej instancji MSDE. Można zainstalować kilka instancji.
- SECURITYMODE=SQL – system zarządzania bazami danych będzie działał w trybie uwierzytelniania mieszanego. Dzięki temu będzie można połączyć się z MSDE na dwa sposoby:
- za pomocą konta administratora systemu Windows
- za pomocą konta MSDE – w tym przypadku wymagane jest podanie nazwy użytkownika i hasła. Będzie to tryb, z którego należy korzystać w programie łączącym się z bazą o nazwie SGBD.
- SAPWD="azerty" – będzie to hasło użytkownika SGBD. Użytkownik [sa] posiada uprawnienia administracyjne w bazie SGBD.
Aby korzystać z konta SGBD w sieci, należałoby wydać następujące polecenie:
Instalator jest minimalistyczny i kończy działanie bez wyświetlania żadnych komunikatów... Można jednak zauważyć, że plik SGBD został zainstalowany za pomocą opcji [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:
![]()
Instalacja odbywa się zazwyczaj w katalogu C:\Program Files\Microsoft SQL Server\MSSQL$nomInstance:
![]() | ![]() |
W folderze [LOG] w katalogu instalacyjnym znajduje się plik dziennika z etapu instalacji programu SGBD. Zawiera on ważną informację: nazwę instancji MSDE:
Znajomość tej nazwy jest istotna, ponieważ będą jej potrzebować wszyscy klienci serwera SGBD. W przypadku braku tych logów nazwę serwera MSDE można ustalić na podstawie serwera [machine_windows\nom_instance_MSDE]. Nazwa komputera jest dostępna w kilku miejscach. Na przykład:
- kliknij prawym przyciskiem myszy na [poste de travail] na pulpicie, wybierz opcję [propriétés], a następnie panel [Nom de l'ordinateur]:

Nadal nie wiadomo, jak uruchomić serwer MSDE. Skrót powinien znajdować się w folderze [Démarrer/Démarrage].

Jeśli spojrzymy na właściwości tego skrótu, zobaczymy, że jego ścieżka docelowa jest następująca:
W folderze [ C:\Program Files\Microsoft SQL Server] znajdują się następujące podfoldery:

- MSSQL$MSDE140405 to folder instancji MSDE, którą właśnie zainstalowaliśmy.
- MSSQL to folder poprzedniej instancji MSDE. Ponieważ nie ma ona nazwy, nazywamy ją instancją domyślną.
- Folder [80] jest folderem wspólnym dla różnych zainstalowanych instancji MSDE. Cel [sqlmangr.exe] skrótu, który uruchamia instancję MSDE, znajduje się w folderze [ 80\Tools\Binn].
Uruchommy program MSDE za pomocą skrótu [Démarrer -> Programmes -> Démarrage]. Praktycznie nic się nie dzieje, poza tym, że na pasku stanu pojawiła się ikona: | Kliknijmy dwukrotnie tę ikonę: ![]() |
Serwer MSDE proponowany tutaj jest serwerem domyślnym [PORTABLE1_TAHE], który znajduje się na tym komputerze. Przypomnijmy, że serwer MSDE, który zainstalowaliśmy, nazywa się [PORTABLE1_TAHE\MSDE140405]. Zmieniamy nazwę serwera w odpowiednim polu: ![]() | Jeśli wszystko przebiegnie pomyślnie, instancja [MSDE140405] powinna zostać uruchomiona: ![]() |
Można przeprowadzić wstępną weryfikację. W tym samym folderze, w którym znajduje się plik [sqlmangr.exe], znajduje się klient konsoli [osql.exe], który umożliwia połączenie się z serwerem MSDE i wydawanie poleceń SQL. Podczas instalacji przypisaliśmy hasło [azerty] administratorowi [sa] naszego serwera MSDE. Za pomocą klienta konsoli połączymy się z nowo zainstalowanym serwerem. Po uruchomieniu polecenia [osql -?] wyświetla się lista możliwych parametrów:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -?
utilisation : osql
[-U ID de connexion]
[-P mot de passe]
[-S serveur]
[-H nom de l'hôte]
[-E connexion approuvée]
[-d utiliser le nom de la base de données]
[-l limite du temps de connexion]
[-t limite du temps de requête]
[-h en-têtes]
[-s séparateur de colonnes]
[-w largeur de colonne]
[-a taille du paquet]
[-e entrée d'écho]
[-I Activer les identificateurs marqués]
[-L liste des serveurs]
[-c fin de cmd] [-D nom ODBC DSN]
[-q "requête cmdline"]
[-Q "requête cmdline" et quitter]
[-n supprimer la numérotation]
[-m niveau d'erreur]
[-r msgs vers stderr]
[-V severitylevel]
[-i fichier d'entrée]
[-o fichier de sortie]
[-p imprimer les statistiques] [-b abandon du lot d'instruction après erreur]
[-X[1] désactive les commandes [et quitte avec un avertissement]]
[-O utiliser le comportement Old ISQL désactive les éléments suivants]
<EOF> traitement par lot d'instructions
Mise à l'échelle automatique de la largeur de la console
Messages larges
niveau d'erreur par défaut de -1 au lieu de 1
[-? description de la syntaxe]
Uruchommy serwer [MSDE140405] zgodnie z powyższymi wskazówkami, a następnie w oknie DOS użyjmy [osql], aby połączyć się z serwerem [portable1_tahe\msde140405] pod tożsamością [sa, azerty]:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>
Komunikat [1>] oznacza, że serwer [osql] oczekuje na polecenie. Połączenie zostało nawiązane poprawnie. Aby prawidłowo korzystać z programu [osql], należy zapoznać się z dokumentacją programu MSDE. Dokumentacja ta jest dostępna w różnych formatach (pdf, htmlhelp itp.). Jest to bardzo obszerna dokumentacja. Zazwyczaj zaleca się korzystanie z klienta graficznego do pracy z bazą danych MSDE. Takie rozwiązanie zostanie przedstawione nieco dalej. Aby zamknąć program [osql], należy użyć polecenia [exit]:
Zobaczymy teraz, jak tworzyć bazy danych na nowo zainstalowanym serwerze MSDE. Wcześniej pokrótce przedstawimy narzędzie [MSDE Manager], które pozwala zmienić tryb uwierzytelniania serwera MSDE. W rzeczywistości, jeśli zainstalujemy taki serwer, przyjmując domyślne opcje instalacji, tryb uwierzytelniania serwera będzie typu [authentification windows]. Ten rodzaj uwierzytelniania zezwala wyłącznie na dostęp użytkowników zidentyfikowanych na komputerze z systemem Windows (ewentualnie poprzez domenę). Dla programu VB.NET, który chce połączyć się z bazą danych w celu wykorzystania jej zawartości, ten tryb okazuje się mało praktyczny. Sytuacja jest jeszcze gorsza w przypadku aplikacji Java, które uzyskują dostęp do serwera SGBD za pośrednictwem sterownika JDBC. W takim przypadku zaleca się stosowanie uwierzytelniania mieszanego, które oprócz poprzedniego sposobu uwierzytelniania akceptuje pary (nazwa użytkownika, hasło) zadeklarowane w pliku SGBD. Narzędzie [MSDE Manager] umożliwia wykonanie tej operacji.
3.13. Gdzie znaleźć MSDE Manager?
[MSDE Manager] to narzędzie do zarządzania SGBD i MSDE. Znajduje się ono w URL i [http://www.valesoftware.com/].
Bezpłatną wersję można pobrać, klikając powyższy link:


Wersja próbna ma ograniczony czas działania. To nam odpowiada, ponieważ wykorzystamy ją tylko do jednego, konkretnego zadania. Pobieramy i instalujemy produkt. Na pulpicie pojawia się skrót. Używamy go, aby uruchomić MSDE Manager. Po przejściu przez pierwsze okna docieramy do tego:

- uruchom serwer MSDE140405
- musisz być zalogowany na komputerze z systemem Windows jako administrator
- kliknij prawym przyciskiem myszy na link [SQL Server Group] i wybierz opcję [New SQL Server Registration]:


Pojawi się następująca strona właściwości:
![]() |
portable1_tahe\msde140405 – nazwa instancji MSDE, z którą chcesz się połączyć | |
Uwierzytelnianie systemu Windows – ten tryb jest zawsze dostępny i umożliwia administratorowi komputera z systemem Windows połączenie się z serwerem MSDE | |
wybierz jedyną wyświetloną grupę serwerów [SQL Server Group] |
Po kliknięciu [OK] wyświetla się drzewo właściwości serwera MSDE140405:

Moglibyśmy zacząć tworzyć bazy danych. Nie zrobimy tego jednak, ponieważ wykorzystamy inny produkt, będący klonem omówionego już produktu IBExpert. Zmienimy po prostu tryb uwierzytelniania serwera MSDE. Kliknijmy prawym przyciskiem myszy na serwer MSDE140405 powyżej i wybierzmy opcję [Design]:

Pojawi się następujące okno informacyjne:

Panel [General] zawiera informacje o serwerze MSDE, z którym jesteśmy połączeni. Interesuje nas strona [Security]:

Należy się tutaj upewnić, że tryb uwierzytelniania serwera MSDE to rzeczywiście [SQL Server and Windows]. Dzięki temu będzie można połączyć się z serwerem MSDE na dwa sposoby:
- za pomocą konta administratora systemu Windows – tak właśnie zrobiono w tym przypadku
- za pomocą konta MSDE – w tym przypadku wymagane jest podanie loginu i hasła. Będzie to tryb, z którego należy korzystać w programie łączącym się z bazą danych SGBD.
Potwierdzamy ten wybór i zamykamy program MSDE Manager. Nie będziemy już go potrzebować. Aby utworzyć bazy danych MSDE, użyjemy innego narzędzia: EMS MS SQL Manager.
3.14. Gdzie znaleźć menedżera EMS , MS i SQL?
EMS MS SQL Manager to graficzne narzędzie umożliwiające pracę z serwerem SGBD Microsoft SQL, a tym samym z MSDE. Jest ono bardzo podobne do opisanego wcześniej narzędzia IB-Expert. Jest dostępne od URL [http://sqlmanager.net/] (kwiecień 2005 r.):

Strona oferuje menedżery administracyjne dla wielu SGBD. Kliknij link [MS SQL Manager]:

Powyżej wybieramy uproszczoną wersję produktu. Należy ją pobrać i zainstalować. Uzyskamy folder o następującej strukturze:

Plik wykonywalny to [MsManager.exe]. Skrót jest zazwyczaj dostępny w menu [Démarrer]:

Po uruchomieniu program MS SQL Manager wyświetla następujące okno:

Zacznijmy od zarejestrowania serwera MSDE, na którym chcemy pracować, za pomocą opcji [Database/Register Host]:
![]() |
Uwagi:
- Krok 1 – jak już wspomniano, MSDE obsługuje dwa tryby uwierzytelniania: Windows i SQL Server. W trybie [windows] wykorzystywane są konta z komputera z systemem Windows. W trybie [SQL Server] wykorzystywane są konta serwera SGBD. [SQL Server] może działać w trybie [Windows] lub w trybie mieszanym [Windows, SQL Server]. Tryb uwierzytelniania [Windows] jest zawsze dostępny. Natomiast tryb uwierzytelniania mieszanego nie jest zawsze aktywny. Widzieliśmy już, jak go włączyć za pomocą menedżera MSDE. Powyżej połączenie nawiązano przy użyciu konta administratora.
- Krok 2 – po pomyślnym uwierzytelnieniu wyświetlane są domyślne bazy danych MSDE. Powyżej zaznaczono je wszystkie.
![]() |
Uwagi:
- Krok 3: Można wybrać opcje zarządzania wybranymi bazami danych. W tym przypadku zachowano opcje domyślne.
- Krok 4: rejestrujemy serwer MSDE za pomocą przycisku [Register]
Serwer MSDE pojawia się wówczas w przeglądarce baz danych:

Skorzystajmy z opcji [Database/Create Database], aby utworzyć bazę danych:
![]() |
Krok 2:
Gdy pojawi się ta strona informacyjna, oznacza to, że baza [dbarticles] została utworzona. Można to sprawdzić za pomocą przycisku [Test Connect]. W polu [Database alias] można wpisać dowolną treść. W tym przypadku wpisano:
- nazwę bazy danych
- nazwę serwera MSDE, na którym się znajduje
- użytkownika [admarticles], który będzie właścicielem tej bazy, oraz jego hasło [mdparticles]. Użytkownik ten nie został jeszcze utworzony, ale zostanie to zrobione wkrótce.
Krok 3:
- za pomocą przycisku [Register] rejestrujemy nową bazę w [MS SQL Server ]. Po zarejestrowaniu baza [admarticles] pojawia się na liście baz. Dwukrotne kliknięcie na niej powoduje wyświetlenie drzewa jej właściwości.
![]() | ![]() |
Utwórzmy nowe konto użytkownika, które będzie administratorem bazy danych [admarticles].
- Wybierz opcję [Tools/Login manager]:

- widzimy, że zdefiniowano już dwa konta:
- [BUILTIN\Administrateurs]: to konto korzysta z uwierzytelniania systemu Windows. Reprezentuje ono administratorów komputera z systemem Windows, na którym znajduje się serwer MSDE
- sa: ten login korzysta z uwierzytelniania SQL. Domyślnie jest to administrator serwera MSDE. Przypominamy, że zgodnie z ustawieniami podczas instalacji SGBD MSDE jego hasło to [azerty].
- Kliknijmy prawym przyciskiem myszy na obszarze loginów i dodajmy nowy login:
![]() |
- Pojawi się okno, w którym definiujemy parametry nowego loginu:

- Nazwa loginu: admarticles
- Hasło: mdparticles
- Po naciśnięciu przycisku [OK] menedżer MS wyświetla zapytania SQL, które zamierza wykonać:

Językiem przedstawionym powyżej jest Transact-SQL, a językiem SQL z MSDE. Żądamy wykonania tego kodu przez [OK]
- nowy login zostaje dodany do listy loginów:

- w oknie właściwości bazy danych [dbarticles] kliknijmy prawym przyciskiem myszy na [users], aby utworzyć użytkownika z uprawnieniami do bazy danych [dbarticles]:

- pojawi się wówczas następujące okno:

- w menu rozwijanym [Login] znajduje się lista istniejących loginów. Wybieramy login [admarticles].
- W polu [Name] należy podać nazwę użytkownika. Z tym samym loginem może być powiązanych kilku użytkowników. Dlatego w polu MSDE utworzenie użytkownika wymaga najpierw utworzenia loginu. Panel [User] wygląda następująco:

- Przejdźmy teraz do panelu [Member Of], który pozwoli nam zdefiniować uprawnienia naszego użytkownika:

- Nie korzystam na co dzień z MSDE i nie znam dokładnego znaczenia każdej z ról proponowanych w oknie po lewej stronie. Rola [db_owner] wydaje się interesująca (owner = właściciel). Wybieramy ją zatem dla naszego użytkownika [admarticles]:

- potwierdzamy nasze wybory, klikając przycisk [Compile] powyżej. Zapytania SQL przedstawione podczas wykonywania są następujące:

- kompilujemy je za pomocą [OK]. Mamy teraz użytkownika z bazy [dbarticles]:

- Teraz utwórzmy tabelę. Klikamy prawym przyciskiem myszy na [Tables] i wybieramy opcję [New Table]. Pojawia się okno definiowania właściwości tabeli:

- Zacznijmy od nadania tabeli nazwy [ARTICLES], korzystając z pola wprowadzania danych [Table Name]. Następnie przejdźmy do panelu [Fields]:

- zdefiniujmy następujące pola:

Dopóki nie „skompilujemy” naszej definicji, tabela nie zostanie utworzona. Użyjmy powyższego przycisku [Compile], aby zakończyć definiowanie tabeli. [MS SQL Manager] przygotowuje zapytania SQL służące do wygenerowania tabeli i prosi o potwierdzenie:

Co ciekawe, [MS SQL Manager] wyświetla zapytania SQL, które wykonał. Pozwala to na naukę języka Transact-SQL. Przycisk [Commit] służy do zatwierdzenia bieżącej transakcji, a [Rollback] do jej anulowania. W tym przypadku zatwierdzamy ją za pomocą [Commit]. Po wykonaniu tej czynności [MS SQL Manager] dodaje utworzoną tabelę do drzewa naszej bazy danych:

Dwukrotne kliknięcie na tabelę umożliwia dostęp do jej właściwości:

Panel [Checks] pozwala nam dodać nowe ograniczenia integralności do tabeli. Dla tabeli [ARTICLES] utworzymy następujące ograniczenia:
- pola [ID, PRIX, STOCKACTUEL, STOKMINIMUM] muszą mieć wartość >=0
- pole [NOM] musi być niepuste
W panelu [Checks] kliknijmy prawym przyciskiem myszy na pustym obszarze, aby dodać nowe ograniczenie [New check]:

- Arkusz edycji ograniczeń wygląda następująco:

Nazwa: nazwa ograniczenia
Tabela: tabela, na którą oddziałuje ograniczenie
Definicja: wyrażenie ograniczenia
Ograniczenie jest kompilowane za pomocą powyższego przycisku [Compile].
- Ponownie [MS SQL Manager] przedstawia wykonane polecenia SQL:

- zatwierdza się je za pomocą przycisku [Commit] (nie pokazano). Po powrocie do panelu [Checks] w tabeli [ARTICLES] pojawia się nowe ograniczenie:

- W ten sam sposób definiujemy pozostałe ograniczenia, aby ostatecznie uzyskać następującą listę:

Po wykonaniu tej czynności otwórzmy panel [DDL] w tabeli [ARTICLES]:

Zawiera on kod Transact-SQL służący do wygenerowania tabeli wraz ze wszystkimi jej ograniczeniami. Kod ten można zapisać w skrypcie, aby móc go później ponownie uruchomić:
CREATE TABLE [ARTICLES] (
[id] int NOT NULL,
[nom] varchar(20) COLLATE French_CI_AS NOT NULL,
[prix] float(53) NOT NULL,
[stockactuel] int NOT NULL,
[stockminimum] int NOT NULL,
CONSTRAINT [ARTICLES_uq] UNIQUE ([nom]),
PRIMARY KEY ([id]),
CONSTRAINT [ARTICLES_ck_id] CHECK ([id] > 0),
CONSTRAINT [ARTICLES_ck_nom] CHECK ([nom] <> ''),
CONSTRAINT [ARTICLES_ck_prix] CHECK ([prix] >= 0),
CONSTRAINT [ARTICLES_ck_stockactuel] CHECK ([stockactuel] >= 0),
CONSTRAINT [ARTICLES_ck_stockminimum] CHECK ([stockminimum] >= 0)
)
ON [PRIMARY]
GO
Nadszedł czas, aby wprowadzić kilka danych do tabeli [ARTICLES]. W tym celu skorzystajmy z jej panelu [Data]:

Przycisk [+] służy do dodawania wiersza, a przycisk [-] do jego usuwania. Dane wprowadza się poprzez wpisanie ich w polach wprowadzania danych w każdym wierszu tabeli. Wiersz zatwierdza się za pomocą przycisku [Post Edit] znajdującego się poniżej:
![]()
Utwórzmy dwa artykuły:

[MS SQL Manager] umożliwia generowanie zapytań SQL za pomocą opcji [Tools/Show SQL Editor] lub [F12]. Uzyskujemy wówczas dostęp do zaawansowanego edytora zapytań SQL, za pomocą którego można odtwarzać zapytania. Są one zapisywane w pamięci, dzięki czemu można powrócić do już odtworzonego zapytania. Oto przykład:

Uruchamiamy zapytanie SQL za pomocą przycisku [Execute] powyżej. Otrzymujemy następujący wynik:

Na tym zakończymy nasze demonstracje. Para [MS SQL Manager - MSDE], podobnie jak para [IBExpert - Firebird], również świetnie nadaje się do nauki o bazach danych.
3.15. Utwórz źródło ODBC [MSDE]
Sterownik ODBC dla serwera SQL jest zazwyczaj instalowany domyślnie na komputerach z systemem Windows.
- Uruchom narzędzie [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

- Pojawi się następujące okno:

- Dodajmy [Add] jako nowe źródło danych systemowych (panel [System DSN]), które powiążemy z bazą MSDE utworzoną w poprzednim akapicie:

- Najpierw musimy określić sterownik ODBC, który ma być używany. Powyżej wybieramy sterownik dla [SQL Server], a następnie tworzymy [Terminer]. Następnie uruchamia się kreator sterownika ODBC dla [SQL Server]:

- wypełniamy poszczególne pola:
nazwa źródła ODBC – może być dowolna | |
może być dowolna | |
nazwa serwera MSDE przechowującego dane ze źródła ODBC |
- tworzymy [Suivant], aby podać nowe informacje:

- wypełniamy poszczególne pola:
określamy, że połączymy się ze źródłem danych ODBC przy użyciu nazwy użytkownika zarejestrowanej na serwerze MSDE | |
nazwa użytkownika | |
hasło użytkownika |
- warto zauważyć, że po raz pierwszy używamy użytkownika (admarticles, mdparticles) utworzonego w poprzednim akapicie. Ponownie wykonujemy polecenie [Suivant], aby uzyskać następujący arkusz:

- wypełniamy poszczególne pola:
wybieramy bazę [dbarticles] jako domyślną dla użytkownika [admarticles] |
- tworzymy bazę [Suivant], aby uzyskać następujący nowy arkusz:

- akceptujemy wartości domyślne i tworzymy [Terminer]. Poniżej znajduje się podsumowanie cech źródła ODBC, które zostanie utworzone:

- Przycisk [Tester la source de données] pozwala nam sprawdzić poprawność wprowadzonych danych. Upewnij się, że proces MSDE został uruchomiony, a następnie przetestuj połączenie:

- mamy teraz pewność, że para [admarticles, mdparticles] została rozpoznana.
W celu przeprowadzenia dodatkowych testów czytelnik może postępować zgodnie z procedurą opisaną w punkcie 3.10.
3.16. Ciąg połączenia z bazą danych MSDE
- Uruchom Visual Studio i wyświetl eksplorator serwerów [Affichage/Explorateur de serveurs]:
![]() |
- kliknąć prawym przyciskiem myszy na [Connexion de données] i wybrać opcję [Ajouter une connexion]:

- w panelu [Provider] należy wskazać, że chcemy korzystać ze źródła SQL Server, a następnie przejść do panelu [Connection]. Należy zauważyć, że w tym przypadku nie korzystamy ze sterownika ODBC.

nazwa serwera MSDE, z którym nawiązujemy połączenie | |
identyfikator używany do połączenia z bazą danych | |
hasło powiązane z tym identyfikatorem | |
baza danych, z którą chcemy pracować |
Przycisk [Tester la connexion] pozwala sprawdzić poprawność wprowadzonych danych:

- potwierdź działanie kreatora za pomocą [OK]. Co dość dziwne, w nowym oknie pojawia się prośba o podanie parametrów połączenia:

- podajemy je ponownie i wykonujemy polecenie [OK]. Źródło danych pojawia się wówczas w oknie [Explorateur de serveurs] programu Visual Studio:

- Po dwukrotnym kliknięciu tabeli [ARTICLES] uzyskujemy dostęp do danych z tabeli:

- jeśli klikniemy prawym przyciskiem myszy na link [portable1_tahe\msde140405.dbarticles.admarticles] w panelu [Explorateur de serveurs] i wybierzemy opcję [Propriétés], uzyskamy dostęp do właściwości połączenia:

- Ciekawą informacją jest ciąg połączenia [ConnectString], ponieważ kod .NET potrzebuje go do nawiązania połączenia z bazą danych. W tym przypadku ciąg połączenia brzmi:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PORTABLE1_TAHE;Use Encryption for Data=False;Tag with column collation when possible=False
Wiele elementów tego ciągu połączenia ma wartości domyślne. Wystarczy użyć następującego ciągu połączenia:






























