Skip to content

3. Додатки

3.1. Створення веб-проєкту за допомогою Visual Studio.net на сімейній платформі XP

Visual Studio.net дозволяє створювати різні типи проектів:

Image

Для створення веб-додатку зазвичай обирають тип [Application Web ASP.NET]. Цей тип проекту вимагає наявності локального або віддаленого веб-сервера IIS. Якщо ви працюєте на комп’ютері з ОС Windows XP, такого сервера немає, і його неможливо встановити. Отже, створити проєкт типу [Application Web ASP.NET] неможливо.

Цю проблему можна обійти, змирившись із деякими незначними незручностями. Достатньо:

  • використовувати веб-сервер Cassini замість сервера IIS. Він доступний безкоштовно на сайті Microsoft.
  • використовувати проект [Bibliothèque de classes] замість проекту [Application Web ASP.NET]

Створимо простий проєкт, який продемонструє, як це зробити.

  • Створити проект [Bibliothèque de classes]
  • видалити [Class1.vb]

Image

  • додати до проекту новий елемент типу [Fichier texte] і назвати його [demo.aspx]:
  • файл [demo.aspx] розпізнається як веб-сторінка, і до нього прив’язується редактор сторінок. Він має дві панелі:
  • [design] для графічного створення сторінки
  • [HTML] — для доступу до коду сторінки HTML

Image

  • натиснути [Affichage/Code], щоб відобразити частину коду VB сторінки. Нічого не відбувається. Доступ до коду VB сторінки відсутній.
  • перейти до панелі [HTML] і ввести код, який пов’яже сторінку [demo.aspx] з кодом [demo.aspx.vb]:

Image

  • запросити код перевірки, пов'язаний із цією сторінкою, за допомогою [Affichage code - F7]. Отримуємо файл [demo.aspx.vb]:

Image

  • сторінка [demo.aspx] тепер розпізнається як веб-сторінка [.aspx] із пов’язаним кодом [.aspx.vb].
  • Повернімося до панелі [Design] з [demo.aspx] і намалюємо наступну сторінку:

Image

Сторінка містить текст та серверний компонент типу [Label] з ідентифікатором [lblHeure].

  • Перейдемо до панелі [HTML]. Там ми бачимо такий код:
<%@ 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>

Цей код є неповним з точки зору синтаксису HTML. Доповнимо його:

<%@ 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>
  • Перейдемо до коду [demo.aspx.vb], щоб вписати туди контрольний код, який встановить час у компоненті [lblHeure]. Помітимо, що цей код не розпізнається Intellisense — інструментом, що допомагає при написанні коду.
  • Закрийте [demo.aspx] та [demo.aspx.vb], попередньо збереживши їх, а потім знову відкрийте їх. Перейдіть до коду [demo.aspx.vb]. Цього разу компонент [lblHeure] з [demo.aspx] правильно розпізнається Intellisense в коді [demo.aspx.vb]. Доповніть код:

Image

  • згенеруйте проєкт за допомогою [Générer/Générer demo]. Якщо генерація пройде успішно, файл DLL буде згенеровано у папці [bin] проєкту:

Image

  • Ми готові до тестування. Налаштовуємо сервер Cassini (див. наступний абзац) наступним чином:

Image

Ціль ярлика для Cassini задається так:

"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
E:\..\WebServer.exe
шлях до виконуваного файлу
D:\temp\07-04-05\demo
шлях до папки веб-проекту Visual Studio
/demo
відповідний віртуальний шлях
  • Запустіть Cassini. Його піктограма з'явиться на панелі завдань. Клацніть на ній правою кнопкою миші та виберіть опцію [Show details], щоб перевірити правильність налаштування веб-сервера:

Image

  • У браузері відкрийте сторінку, яку ми створили, ввівши URL [http://localhost/demo/demo.aspx]. Ми отримаємо такий результат:

Image

Нам вдалося створити веб-додаток у Visual Studio, використовуючи:

  • проекту типу [bibliothèque de classes]
  • веб-сервера Cassini

Тепер ми знаємо, як створювати веб-додатки на комп’ютерах, що не мають сервера IIS, як-от на комп’ютерах із Windows XP, сімейна версія.

3.2. Де знайти веб-сервер Cassini ?

Для роботи з платформою .NET від Microsoft можна використовувати веб-сервер Cassini. Він доступний через продукт під назвою [WebMatrix], який є безкоштовним середовищем веб-розробки на платформах .NET, доступним на URL:

Image

Будемо уважно слідкувати за процедурою встановлення продукту:

  • завантажити та встановити платформу .NET (версія 1.1 від березня 2004 року)
  • завантажити та встановити WebMatrix
  • завантажити та встановити MSDE (Microsoft Data Engine) — обмежену версію SQL Server.

Після завершення встановлення продукт [WebMatrix] буде доступний у списку встановлених програм:

Image

Посилання [ASP.NET] Web Matrix запускає IDE для розробки ASP.NET:

Image

Посилання [Class Browser] запускає інструмент перегляду класів .NET:

Image

Щоб перевірити встановлення, запустимо [WebMatrix]:

Під час першого запуску [WebMatrix] запитує параметри нового projet.C — це його конфігурація за замовчуванням. Можна налаштувати програму так, щоб це діалогове вікно не з’являлося під час запуску. Це можна зробити за допомогою опції [File/New File]. [WebMatrix] дозволяє створювати шаблони для різних веб-додатків. Вище ми вказали за допомогою (1), що хочемо створити додаток [ASP.ET Page], який є веб-сторінкою. За допомогою (2) ми вказуємо папку, в якій буде розміщена ця веб-сторінка. У (3) ми вказуємо назву сторінки. Вона повинна мати розширення .aspx. Нарешті, у (4) ми вказуємо, що хочемо працювати з мовою VB.NET, причому [WebMatrix] також підтримує мови C# та J#. Після цього [WebMatrix] відображає сторінку редагування файлу [demo1.aspx]. У ній ми розміщуємо такий код:

Image

  • Вкладка [Design] дозволяє «намалювати» веб-сторінку, яку ми хочемо створити. Це відбувається так само, як у IDE для створення додатків Windows.
  • Графічне проектування веб-сторінки у [Design] згенерує код HTML у вкладці [HTML]
  • веб-сторінка може містити елементи управління, що генерують події, на які потрібно реагувати, наприклад, кнопку. Ці події оброблятиметься кодом VB.NET, який розміщуватиметься у вкладці [Code]
  • у підсумку файл demo1.aspx є текстовим файлом, що поєднує код HTML та код VB.NET, що є результатом графічного проектування, виконаного у [Design], коду HTML, який було додано вручну у файл [HTML], та коду VB.NET, розміщеного у файлі [Code]. Повний файл доступний на вкладці [All].
  • Досвідчений розробник ASP.ET може створити файл demo1.aspx безпосередньо за допомогою текстового редактора без використання будь-якого IDE.

Виберемо опцію [All]. Бачимо, що [WebMatrix] вже згенерував код:

<%@ Page Language="VB" %>
<script runat="server">

     ' Вставте тут код сторінки
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Вставте тут вміст -->
    </form>
</body>
</html>

Ми не будемо тут намагатися пояснити цей код. Ми перетворюємо його наступним чином:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

Наведений вище код є поєднанням коду HTML та коду VB.NET. Він розміщений у тегах <% ... %>. Для виконання цього коду ми використовуємо опцію [View/Start]. [WebMatrix] запускає веб-сервер Cassini, якщо він ще не запущений

Image

Можна прийняти значення за замовчуванням, запропоновані в цьому діалоговому вікні, та вибрати опцію [Start]. Веб-сервер тепер активний. [WebMatrix] запустить браузер за замовчуванням на комп’ютері, на якому він знаходиться, і запросить URL http://localhost:8080/demo1.aspx:

Image

Сервер Cassini можна використовувати поза межами [WebMatrix]. Виконуваний файл сервера знаходиться в <WebMatrix>\<версія>\WebServer.exe, де <WebMatrix> — це каталог інсталяції [WebMatrix], а <version> — його номер версії:

Image

Відкриємо вікно командного рядка та перейдемо до папки сервера Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

Запустимо [WebServer.exe] без параметрів:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

З'являється вікно довідки:

Image

Програма [WebServer], яку також називають веб-сервером Cassini, підтримує три параметри:

  • /port: номер порту веб-сервісу. Може бути будь-яким. За замовчуванням — 80
  • /path: фізичний шлях до папки на диску
  • /vpath: віртуальна папка, пов’язана з попередньою фізичною папкою. Зверніть увагу на те, що синтаксис не /path=шлях, а /vpath:шлях, на відміну від того, що вказано у прикладі [Example] у вікні довідки вище.

Помістимо файл [demo1.aspx] у таку папку:

Image

Прив’яжемо до фізичної папки [d:\data\devel\webmatrix] віртуальну папку [/webmatrix]. Веб-сервер можна запустити таким чином:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

Сервер Cassini стає активним, і його піктограма з’являється на панелі завдань. Якщо двічі клацнути на ній:

Image

З’являться параметри запуску сервера. Також є можливість зупинити [Stop] або перезапустити [Restart] веб-сервер. Якщо натиснути на посилання [Root URL], у браузері відкриється коренева папка веб-дерева сервера:

Image

Перейдемо за посиланням [demos]:

Image

а потім за посиланням [demo1.aspx]:

Image

Отже, бачимо, що якщо фізична папка P=[d:\data\devel\webmatrix] була пов’язана з віртуальною папкою V=[/webmatrix], а сервер працює на порту 100, веб-сторінка [demo1.aspx], яка фізично знаходиться в [P\demos], буде доступна локально через URL [http://localhost:100/V/demos/demo1.aspx].

Щоб не доводилося запускати сервер Cassini через вікно DOS, можна створити ярлик до виконуваного файлу сервера з такими властивостями:

Image

Cible
"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"
Démarrer dans
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. Де знайти Spring?

Головний сайт Spring — [http://www.springframework.org/]. Це сайт версії для Java. Версія .NET, яка наразі перебуває на стадії розробки (квітень 2005 року), розміщена за адресою [http://www.springframework.net/].

Image

Сторінка для завантаження знаходиться за адресою [SourceForge]:

Image

Після завантаження вищезазначеного zip-файлу розпакуйте його:

Image

У цьому документі ми використовували лише вміст папки [bin]:

Image

У проєкті Visual Studio, де використовується Spring, необхідно систематично виконувати дві дії:

  • помістити вищезазначені файли в папку [bin] проекту
  • додати до проекту посилання на збірку [Spring.Core.dll]

3.4. Де знайти Nunit?

Головний сайт Nunit — [http://www.nunit.org/]. Версія, доступна у квітні 2005 року, — 2.2.0:

Image

Завантажте цю версію та встановіть її. Під час встановлення створюється папка, у якій знаходиться графічна тестова версія:

Найцікавіше знаходиться у папці [bin]:

Image

Image

Стрілка вище вказує на графічну утиліту для тестування. Під час встановлення також були додані нові елементи до репозиторію збірки Visual Studio, які ми зараз розглянемо.

Створимо такий проект у Visual Studio:

Image

Клас, що тестується, знаходиться у файлі [Personne.vb]:

Public Class Personne

     ' приватні поля
    Private _nom As String
    Private _age As Integer

     ' конструктор за замовчуванням
    Public Sub New()
    End Sub

     ' властивості, пов’язані з приватними полями
    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

     ' ідентифікаційний рядок
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

     ' метод init
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

     ' метод close
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

Тестовий клас знаходиться в [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

     ' тестований об’єкт
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' створюється екземпляр класу «Personne»
        personne1 = New Personne
         ' журнал
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' логічний вивід на екран
        Console.WriteLine("début test")
         ' ініціалізація «personne1»
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' тести
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' журнал екрану
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' моніторинг
        Console.WriteLine("teardown test")
    End Sub

End Class

Слід звернути увагу на кілька моментів:

  • методи мають такі атрибути, як <Setup()>, <TearDown()>, ...
  • щоб ці атрибути були розпізнані, необхідно, щоб:
    • проект повинен посилатися на збірку [nunit.framework.dll]
    • тестовий клас імпортував простір імен [NUnit.Framework]

Посилання можна створити, клацнувши правою кнопкою миші на [References] у провіднику рішень:

Image

Збірка [nunit.framework.dll] має бути у запропонованому списку, якщо встановлення [Nunit] пройшло успішно. Достатньо двічі клацнути на збірці, щоб додати її до проєкту:

Image

Після цього тестовий клас [NunitTestPersonne] повинен імпортувати простір імен [NUnit.Framework]:

Imports NUnit.Framework

Після цього мають бути розпізнані атрибути тестового класу [NunitTestPersonne].

  • атрибут <Test()> позначає метод, що тестується
  • атрибут <Setup()> позначає метод, який слід виконати перед кожним тестованим методом
  • атрибут <TearDown()> позначає метод, який слід виконати після кожного тестованого методу
  • метод Assert.AreEqual дозволяє перевірити рівність двох entités.Il існує багато інших методів типу Assert.xx.
  • утиліта NUnit зупиняє виконання тестованого методу, щойно метод типу [Assert] завершується з помилкою, і виводить повідомлення про помилку. В іншому випадку вона виводить повідомлення про успішне виконання.

Налаштуємо наш проєкт так, щоб він генерував DLL:

Image

Згенерований файл DLL матиме назву [nunit-demos-1.dll] і за замовчуванням буде розміщений у папці [bin] проекту. Згенеруємо наш проект. У папці [bin] ми отримаємо:

Image

Тепер запустимо утиліту для тестування графіки Nunit. Нагадаємо, що вона знаходиться в <Nunit>\bin і називається [nunit-gui.exe]. <Nunit> позначає папку інсталяції [Nunit]. Ми отримуємо такий інтерфейс:

Image

Скористаємося пунктом меню [File/Open], щоб завантажити DLL та [nunit-demos-1.dll] з нашого проєкту:

Image

[Nunit] здатний автоматично виявляти тестові класи, що містяться у завантаженому файлі DLL. У цьому випадку він знаходить клас [NunitTestPersonne]. Після цього він відображає всі методи класу, що мають атрибут <Test()>. Кнопка [Run] дозволяє запустити тестування вибраного об’єкта. Якщо це клас [NunitTestPersonne], тестуються всі відображені методи. Можна запустити тестування конкретного методу, вибравши його та запустивши його виконання за допомогою [Run]. Запустимо виконання класу:

Image

Успішне тестування методу позначається зеленою крапкою поруч із методом у лівому вікні. Неуспішне тестування позначається червоною крапкою.

Вікно [Console.Out] праворуч показує екранні виводи, що генеруються тестованими методами. Тут ми вирішили простежити хід тесту:

1
2
3
4
setup test
début test
fin test
teardown test
  • у рядку 1 показано, що метод атрибута <Setup()> виконується перед тестом
  • рядки 2–3 генеруються тестованим методом [demo] (див. код вище)
  • рядок 4 показує, що метод атрибуту <TearDown()> виконується після тесту

3.5. Де знайти SGBD — -версію Firebird?

Головний сайт Firebird — [http://firebird.sourceforge.net/]. На сторінці завантажень наведено такі посилання (квітень 2005 року):

Image

Необхідно завантажити такі файли:

firebird-win32
SGBD для Windows
firebird-net-provider
бібліотеку класів для додатків .NET, яка дозволяє отримати доступ до SGBD без використання драйвера ODBC.
firebird-ODBC-driver
драйвер ODBC для Firebird

Встановіть ці компоненти. SGBD встановлюється у папку, вміст якої виглядає приблизно так:

Image

Бінарні файли знаходяться у папці [bin]:

Image

fbguard.exe
дозволяє запускати/зупиняти SGBD
isql.exe
лінійний клієнт, що дозволяє керувати базами даних

Слід зазначити, що за замовчуванням адміністратор SGBD називається [SYSDBA], а його пароль — [masterkey]. У [Démarrer] встановлено такі меню:

Image

Опція [Firebird Guardian] дозволяє запускати/зупиняти SGBD. Після запуску піктограма SGBD залишається на панелі завдань Windows:

Для створення та роботи з базами даних Firebird за допомогою командного рядка [isql.exe] необхідно ознайомитися з документацією, що входить до комплекту поставки продукту та знаходиться у папці [doc]. Швидшим способом роботи з Firebird є використання графічного клієнта. Таким клієнтом є IB-Expert, описаний у наступному розділі.

3.6. Де знайти IB- Expert?

Головний сайт Firebird — [http://www.ibexpert.com/]. На сторінці завантажень наведено такі посилання:

Image

Виберіть безкоштовну версію [Personal Edition]. Після її завантаження та встановлення у вас з’явиться папка, схожа на таку:

Image

Виконуваний файл — [ibexpert.exe]. Зазвичай у меню доступний ярлик [Démarrer]:

Image

Після запуску IBExpert відображає таке вікно:

Image

Скористаємося опцією [Database/Create Database] для створення бази даних:

Image

Server
може бути [local] або [remote]. У даному випадку наш сервер знаходиться на тій самій машині, що й [IBExpert]. Тому вибираємо [local]
Database
використовуємо кнопку типу [dossier] у списку, щоб вказати файл бази даних. Firebird зберігає всю базу даних в одному файлі. Це одна з його переваг. Базу даних можна перенести з одного комп’ютера на інший, просто скопіювавши файл. Суфікс [.gdb] додається автоматично.
Username
SYSDBA — це адміністратор за замовчуванням у поточних дистрибутивах Firebird
Password
masterkey — це пароль адміністратора SYSDBA для поточних дистрибутивів Firebird
Dialect
діалект SQL, який слід використовувати
Register Database
якщо поле відмічено, IBExpert відобразить посилання на створену базу даних після її створення

Якщо після натискання кнопки створення [OK] з’явиться таке попередження:

Image

це означає, що ви не запустили Firebird. Запустіть його. З’явиться нове вікно:

Image

Server version
[IBExpert] здатний обробляти різні SGBD, похідні від Interbase. Виберіть версію Firebird, яку ви встановили

Image

Після підтвердження цього нового вікна за допомогою [Register] ми отримуємо такий результат:

Image

Щоб отримати доступ до створеної бази даних, достатньо двічі клацнути на її посилання. IBExpert відобразить дерево, що надає доступ до властивостей бази даних:

Image

Створимо таблицю. Клацніть правою кнопкою миші на [Tables] і виберіть опцію [New Table]. З’явиться вікно налаштування властивостей таблиці:

Почнемо з того, що дамо таблиці ім’я [ARTICLES], скориставшись полем введення [1]:

Скористаємося полем введення [2], щоб визначити первинний ключ [ID]:

Поле можна зробити первинним ключем, двічі клацнувши на полі [PK] (Primary Key) цього поля. Додамо поля за допомогою кнопки [3]:

Image

Доки ми не «скомпілювали» наше визначення, таблиця не створюється. Скористаємося кнопкою [Compile], розташованою вище, щоб завершити визначення таблиці. IBExpert готує запити SQL для створення таблиці та запитує підтвердження:

Image

Цікаво, що IBExpert відображає запити SQL, які він виконав. Це дозволяє вивчити не тільки мову SQL, але й діалект SQL, який, можливо, є пропрієтарним. Кнопка [Commit] дозволяє підтвердити поточну транзакцію, а [Rollback] — скасувати її. Тут ми підтверджуємо її за допомогою [Commit]. Після цього IBExpert додає створену таблицю до дерева нашої бази даних:

Image

Двічі клацнувши на таблиці, ми отримуємо доступ до її властивостей:

Image

Панель [Constraints] дозволяє додати до таблиці нові обмеження цілісності. Відкриємо її:

Image

Тут ми бачимо обмеження первинного ключа, яке ми створили. Можна додати й інші обмеження:

  • зовнішні ключі [Foreign Keys]
  • обмеження цілісності полів [Checks]
  • обмеження унікальності полів [Uniques]

Зазначимо, що:

  • поля [ID, PRIX, STOCKACTUEL, STOKMINIMUM] повинні бути >0
  • поле [NOM] має бути не порожнім та унікальним

Відкриємо панель [Checks] і клацнемо правою кнопкою миші в області визначення обмежень, щоб додати нове обмеження:

Image

Визначимо необхідні обмеження:

Image

Зверніть увагу, що в обмеженні [NOM<>''] використовуються дві апострофи, а не лапки. Скомпілюємо ці обмеження за допомогою кнопки [Compile] вище:

Image

І знову IBExpert демонструє свою навчальну функцію, вказуючи запити SQL, які він виконав. Тепер перейдемо до панелі [Constraints/Uniques], щоб вказати, що ім’я має бути унікальним:

Image

Визначимо обмеження:

Image

Скомпілюємо його. Після цього відкриємо панель [DDL] таблиці [ARTICLES]:

Image

Вона видає код SQL для генерації таблиці з усіма її обмеженнями. Цей код можна зберегти у скрипті, щоб виконати його пізніше:

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);

Тепер настав час внести дані в таблицю [ARTICLES]. Для цього скористаємося її панеллю [Data]:

Image

Дані вводяться подвійним клацанням миші на полях введення кожного рядка таблиці. Новий рядок додається за допомогою кнопки [+], а рядок видаляється за допомогою кнопки [-]. Ці операції виконуються в рамках транзакції, яка підтверджується натисканням кнопки [Commit Transaction]. Без такого підтвердження дані будуть втрачені.

IBExpert дозволяє відправляти запити SQL за допомогою опції [Tools/SQL Editor] або [F12]. У цьому випадку відкривається доступ до розширеного редактора запитів SQL, за допомогою якого можна відтворювати запити. Вони зберігаються в пам’яті, що дає змогу повернутися до запиту, який вже було відтворено. Ось приклад:

Image

Виконуємо запит SQL за допомогою кнопки [Execute], розташованої вище. Отримуємо такий результат:

Image

На цьому ми завершимо наші демонстрації. Комбінація IBExpert-Firebird чудово підходить для вивчення баз даних.

3.7. Встановлення та використання драйвера ODBC для [Firebird]

3.8. Встановлення драйвера

Посилання [firebird-odbc-provider] на сторінці завантажень [Firebird] (параграф 3.5) надає доступ до драйвера ODBC. Після його встановлення він з’являється у списку встановлених драйверів ODBC.

3.9. Створити джерело ODBC

  • запустіть утиліту [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • з’явиться таке вікно:

Image

  • додамо [Add] — нове джерело системних даних (панель [System DSN]), яке пов’яжемо з базою даних Firebird, яку ми створили в попередньому розділі:

Image

  • Спочатку нам потрібно вказати драйвер ODBC, який буде використовуватися. Вище ми обираємо драйвер для Firebird, а потім виконуємо [Terminer]. Після цього запускається майстер драйвера ODBC для Firebird:

Image

  • заповнюємо різні поля:

Image

DSN [demo-odbc-firebird]
ім'я DSN джерела ODBC — може бути будь-яким
Database [D:\..\DBARTICLES.GDB]
ім’я файлу Firebird BD, який потрібно обробити — використовуйте [Browse] для позначення відповідного файлу .gbd
Database Account [SYSDBA]
ідентифікатор, який слід використовувати для підключення до бази даних
Password [masterkey]
пароль, пов'язаний із цим ідентифікатором

Кнопка [Test connection] дозволяє перевірити правильність введених даних. Перед її використанням запустіть SGBD [Firebird]:

Image

  • підтвердіть роботу майстра ODBC, виконавши [OK] стільки разів, скільки потрібно

3.10. Перевірте джерело ODBC

Існує кілька способів перевірки правильної роботи джерела ODBC. Тут ми скористаємося Excel:

Image

  • скористаємося наведеною вище опцією [Données -> Données externes -> Créer une requête]. З’явиться перше вікно майстра налаштування джерела даних. У панелі [Bases de données] перелічено джерела ODBC, які наразі налаштовані на комп’ютері:

Image

  • виберемо джерело ODBC [odbc-firebird-articles], яке ми щойно створили, і перейдемо до наступного кроку за допомогою [OK]:

Image

  • у цьому вікні перелічено таблиці та стовпці, доступні у джерелі ODBC. Ми беремо всю таблицю:

Image

  • перейдемо до наступного кроку з [Suivant]:

Image

  • Цей крок дозволяє нам відфільтрувати дані. Тут ми нічого не фільтруємо і переходимо до наступного кроку:

Image

  • Цей крок дозволяє нам сортувати дані. Ми цього не робимо і переходимо до наступного кроку:

Image

  • на останньому етапі нас запитують, що ми хочемо зробити з даними. Тут ми переносимо їх до Excel:

Image

  • Тут Excel запитує, куди ми хочемо помістити отримані дані. Ми розміщуємо їх у активному аркуші, починаючи з комірки A1. Після цього дані з’являються в аркуші Excel:

Image

Існують й інші способи перевірки дійсності джерела ODBC. Наприклад, можна скористатися безкоштовним пакетом OpenOffice, доступним на URL [http://www.openoffice.org]. Ось приклад із текстом OpenOffice:

  • іконка зліва у вікні OpenOffice надає доступ до джерел даних. Інтерфейс змінюється, з’являється область управління джерелами даних:

Image

  • Одне джерело даних вже попередньо визначено — це джерело [Bibliography]. Клацнувши правою кнопкою миші на області джерел даних, можна створити нове джерело за допомогою опції [Gérer les sources de données]:

Image

  • Майстер [Gestion des sources de données] дозволяє створювати джерела даних. Клацнувши правою кнопкою миші на області джерел даних, можна створити нове джерело за допомогою опції [Nouvelle source de données]:

Image

Nom [odbc-firebird-articles]
будь-яка назва. Тут ми використали назву джерела ODBC
Type de BD [odbc]
OpenOffice підтримує різні типи BD через JDBC, ODBC або безпосередньо (MySQL, Dbase, ...). Для нашого прикладу потрібно вибрати ODBC
URL de la source de données
кнопка праворуч від поля введення надає доступ до списку джерел ODBC на комп’ютері. Вибираємо джерело [odbc-firebird-articles]
  • переходимо до панелі [ODBC], щоб вказати там користувача, під ім’ям якого відбуватиметься підключення:

Image

Nom d'utilisateur [sysdba]
власник джерела ODBC
  • переходимо до панелі [Tables]. Запитується пароль. Тут це [masterkey]:

Image

  • виконуємо [OK]. Після цього відображається список таблиць джерела ODBC:

Image

  • можна визначити таблиці, які будуть відображатися в документі [OpenOffice]. Тут ми обираємо таблицю [ARTICLES] і отримуємо [OK]. Визначення джерела даних завершено. Воно з’являється у списку джерел даних активного документа:

Image

  • за допомогою миші можна перетягнути таблицю [ARTICLES], що знаходиться вище, у текст [OpenOffice]:

Image

3.11. Рядок підключення джерела ODBC Firebird

  • запустіть Visual Studio та відкрийте оглядач серверів [Affichage/Explorateur de serveurs]:
  • клацніть правою кнопкою миші на [Connexion de données] і виберіть опцію [Ajouter une connexion]:

Image

  • у панелі [Provider] вкажіть, що ви хочете використовувати джерело ODBC (див. вище), а потім перейдіть до панелі [Connection]:

Image

Use data source name
[demo-odbc-firebird]
виберіть джерело ODBC у списку. Повинно з’явитися щойно створене джерело. За потреби скористайтеся [Refresh], щоб оновити список джерел ODBC.
User name [SYSDBA]
ідентифікатор, який слід використовувати для входу в базу даних
Password [masterkey]
пароль, пов’язаний із цим ідентифікатором

Тут також кнопка [Test Connection] дозволяє перевірити правильність даних:

Image

  • підтвердіть роботу майстра за допомогою [OK]. Після цього джерело даних з’явиться у вікні [Explorateur de serveurs] у Visual Studio:

Image

  • двічі клацнувши на таблиці [ARTICLES], можна отримати доступ до даних таблиці:

Image

  • якщо клацнути правою кнопкою миші на посилання [Firebird Server D:\temp\... ] і вибрати опцію [Propriétés], можна отримати доступ до властивостей з’єднання:

Image

  • рядок з'єднання [ConnectString] — це важлива властивість, яку варто знати, оскільки код .NET потребує її для встановлення з'єднання з базою даних. У цьому випадку цей рядок з'єднання має вигляд:
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"

Багато елементів цього рядка підключення мають значення за замовчуванням. Можна обмежитися таким рядком підключення:

"DSN=demo-odbc-firebird;UID=SYSDBA;PASSWORD=masterkey"

На цьому завершується наш огляд драйвера ODBC від [Firebird].

3.12. Де знайти SGBD MSDE?

MSDE — це безкоштовна версія сервера SGBD SQL від Microsoft. Її можна знайти за посиланням URL [http://www.microsoft.com/sql/msde/downloads/download.asp]:

Завантажте інсталяційний файл, а потім встановіть SGBD, двічі клацнувши на завантаженому виконуваному файлі. З’явиться вікно з запитом про папку для інсталяції. Назва папки може ввести в оману. Це тимчасова папка, яку згодом можна видалити:

Уважно прочитайте файл [ReadmeMSDE2000A.htm]. Інсталятор — це файл [setup.exe], зазначений вище. Він запускається з командного рядка, щоб можна було передати йому параметри. Основні параметри такі:

Paramètre
Опис

SAPWD="MotDePasseRenforcé"
Вказує посилений пароль, який слід призначити для облікового запису адміністратора «sa».

INSTANCENAME="NomInstance"
Визначає ім'я екземпляра. Якщо INSTANCENAME не вказано, програма встановлення встановлює екземпляр за замовчуванням.

Інші параметри, які часто використовуються для налаштування інсталяції:

Paramètre
Опис

DISABLENETWORKPROTOCOLS=n
Вказує, чи буде екземпляр приймати мережеві з’єднання від програм, що виконуються на інших комп’ютерах. За замовчуванням або якщо вказати DISABLENTWORKPROTOCOL=1, програма встановлення налаштовує екземпляр так, щоб він відхиляв мережеві з’єднання. Вкажіть DISABLENETWORKPROTOCOLS=0, щоб увімкнути мережеві з’єднання.
SECURITYMODE=SQL
Вказує, що екземпляр має бути встановлений у змішаному режимі, тобто екземпляр підтримує аутентифікацію Windows та аутентифікацію SQL для підключень

DATADIR="chemin_dossier_données"
Вказує папку, в яку інсталятор встановлює системні бази даних, журнали помилок та інсталяційні скрипти. Значення, вказане для chemin_dossier_données, має закінчуватися зворотним слешем (\). Для екземпляра за замовчуванням інсталятор додає MSSQL\ до вказаного значення. Для іменованого екземпляра інсталятор додає MSSQL$NomInstance\, де NomInstance — це значення, вказане за допомогою параметра INSTANCENAME. Програма встановлення створює три папки у вказаному місці: папку «Data», папку «Log» та папку «Script».

TARGETDIR="chemin_dossier_exécutables"
Вказує папку, у яку інсталятор встановлює виконувані файли MSDE 2000. Значення, вказане для chemin_dossier_exécutables, має закінчуватися зворотним косою рискою (\). Для екземпляра за замовчуванням інсталятор додає MSSQL\Binn до вказаного значення. Для іменованого екземпляра інсталятор додає MSSQL$NomInstance\Binn, де NomInstance — це значення, вказане за допомогою параметра INSTANCENAME.

Ознайомившись із наведеними вище рекомендаціями щодо встановлення, перейдіть до папки, куди було розпаковано інсталяційні файли, і виконайте наступну команду DOS (використання SGBD без підключення до мережі):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" — це буде ім’я нашого екземпляра MSDE. Можна встановити кілька таких екземплярів.
  • SECURITYMODE=SQL — СДБ працюватиме в режимі змішаної автентифікації. Таким чином, підключитися до MSDE можна буде двома способами:
    • за допомогою облікового запису адміністратора Windows
    • за допомогою облікового запису MSDE — у цьому випадку буде потрібно ввести логін та пароль. Саме цей режим слід використовувати в програмі, яка підключається до бази даних SGBD.
  • SAPWD="azerty" — це буде пароль користувача sa з SGBD. Користувач [sa] має адміністративні права на SGBD.

Для використання SGBD у мережі слід виконати таку команду:

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty" DISABLENETWORKPROTOCOLS=0

Програма встановлення є мінімалістичною і завершується без будь-яких повідомлень... Проте можна побачити, що SGBD було встановлено за допомогою опції [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:

Image

Встановлення зазвичай відбувається в папці C:\Program Files\Microsoft SQL Server\MSSQL$nomInstance:

У папці [LOG] інсталяційного каталогу знаходиться файл журналу етапу інсталяції SGBD. У ньому міститься важлива інформація: ім’я екземпляра MSDE:

2005-04-14 08:14:29.37 spid4     Le nom du serveur est «PORTABLE1_TAHE\MSDE140405».

Важливо знати це ім’я, оскільки воно знадобиться всім клієнтам SGBD. За відсутності цих журналів можна дізнатися ім’я сервера MSDE, яке становить [machine_windows\nom_instance_MSDE]. Ім’я комп’ютера можна знайти в кількох місцях. Наприклад:

  • клацніть правою кнопкою миші на [poste de travail] на робочому столі, виберіть опцію [propriétés], а потім панель [Nom de l'ordinateur]:

Image

Досі невідомо, як запустити сервер MSDE. Зазвичай ярлик розміщується в папці [Démarrer/Démarrage].

Image

Якщо переглянути властивості цього ярлика, можна побачити, що його ціль така:

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe" /n

У папці [ C:\Program Files\Microsoft SQL Server] є такі підпапки:

Image

  • MSSQL$MSDE140405 — це папка екземпляра MSDE, який ми щойно встановили.
  • MSSQL — це папка попереднього екземпляра MSDE. Оскільки вона не має назви, її називають екземпляром за замовчуванням.
  • Папка [80] є спільною для різних встановлених екземплярів MSDE. Ціль [sqlmangr.exe] ярлика, що запускає екземпляр MSDE, знаходиться в папці [ 80\Tools\Binn].
Запустимо MSDE за допомогою ярлика [Démarrer -> Programmes -> Démarrage]. Практично нічого не відбувається, окрім того, що у статусному рядку з’явилася іконка:
Двічі клацнімо на цій іконці:
Сервер MSDE, запропонований тут, є сервером за замовчуванням
[PORTABLE1_TAHE], який вже встановлений на комп’ютері. Нагадаємо, що
сервер MSDE, який ми встановили, називається
[PORTABLE1_TAHE\MSDE140405]. Змінюємо
ім’я сервера у відповідному полі:
Якщо все пройде успішно, екземпляр [MSDE140405] має запуститися:

Можна провести першу перевірку. У тій самій папці, де знаходиться [sqlmangr.exe], є консольний клієнт [osql.exe], який дозволяє підключитися до сервера MSDE та надсилати команди SQL. Під час інсталяції ми призначили пароль [azerty] адміністратору [sa] нашого сервера MSDE. За допомогою консольного клієнта ми підключимося до щойно встановленого сервера. Якщо виконати команду [osql -?], відобразиться список можливих параметрів:

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]

Запустимо сервер [MSDE140405], як зазначено вище, а потім у вікні командного рядка скористаємося командою [osql], щоб підключитися до сервера [portable1_tahe\msde140405] під ім’ям [sa, azerty]:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>

Запрошення [1>] вказує, що [osql] очікує на команду. Ми успішно підключилися. Щоб правильно користуватися [osql], слід ознайомитися з документацією до MSDE. Вона доступна у різних форматах (pdf, htmlhelp тощо). Ця документація є дуже об’ємною. Зазвичай для роботи з базою даних MSDE краще використовувати графічний клієнт. Саме це пропонується трохи далі. Щоб вийти з [osql], використовується команда [exit]:

1> exit

Тепер ми розглянемо, як створювати бази даних на щойно встановленому сервері MSDE. Перед цим ми коротко ознайомимося з інструментом [MSDE Manager], що дозволяє змінити режим автентифікації сервера MSDE. Дійсно, якщо встановити такий сервер із використанням стандартних параметрів інсталяції, режим автентифікації сервера буде типу [authentification windows]. Цей тип автентифікації дозволяє доступ лише користувачам, ідентифікованим на комп’ютері з ОС Windows (можливо, через домен). Для програми VB.NET, яка хоче підключитися до бази даних для використання її вмісту, цей режим виявляється малопрактичним. Ще гірше ситуація для Java-додатків, які отримують доступ до SGBD через драйвер JDBC. У такому разі краще використовувати змішану автентифікацію, яка, на додаток до попередньої автентифікації, приймає комбінації (логін, пароль), задекларовані в SGBD. Цю операцію можна виконати за допомогою інструменту [MSDE Manager].

3.13. Де знайти MSDE Manager?

[MSDE Manager] — це інструмент адміністрування SGBD та MSDE. Його можна знайти за посиланням URL та [http://www.valesoftware.com/].

Завантажити безкоштовну версію можна за посиланням вище:

Image

Image

Пробна версія діє протягом короткого часу. Це підходить, оскільки ми будемо використовувати її лише для однієї конкретної дії. Завантажуємо та встановлюємо програму. На робочому столі з’являється ярлик. Використовуємо його для запуску MSDE Manager. Пройшовши перші вікна, ми потрапляємо до такого:

Image

  • запустіть сервер MSDE140405
  • ви повинні увійти на комп’ютер з Windows як адміністратор
  • клацніть правою кнопкою миші на посилання [SQL Server Group] і виберіть опцію [New SQL Server Registration]:

Image

Image

З’явиться така сторінка властивостей:

Server Name 
portable1_tahe\msde140405 — ім’я екземпляра MSDE, до якого ви хочете підключитися
Connection 
Аутентифікація Windows — цей режим завжди доступний і дозволяє адміністратору комп’ютера з ОС Windows підключитися до сервера MSDE
Server Group 
Виберіть єдину групу серверів, що відображається: [SQL Server Group]

Після натискання [OK] відображається дерево властивостей сервера MSDE140405:

Image

Ми могли б почати створювати бази даних. Але ми цього не робитимемо, оскільки будемо використовувати інший продукт — клон продукту IBExpert, який ми вже розглядали. Ми просто змінимо режим автентифікації для MSDE. Клацнімо правою кнопкою миші на сервері MSDE140405, показаному вище, і виберемо опцію [Design]:

Image

З’явиться таке інформаційне вікно:

Image

Панель [General] містить інформацію про сервер MSDE, до якого ми підключені. Нас цікавить саме сторінка [Security]:

Image

Тут потрібно переконатися, що режим автентифікації MSDE дійсно відповідає [SQL Server and Windows]. Таким чином, підключитися до MSDE можна двома способами:

  • за допомогою облікового запису адміністратора Windows — саме так було зроблено в цьому випадку
  • за допомогою облікового запису MSDE — у цьому випадку буде потрібно ввести логін та пароль. Саме цей режим слід використовувати в програмі, яка підключається до бази даних SGBD.

Підтверджуємо цей вибір і закриваємо MSDE Manager. Він нам більше не знадобиться. Для створення баз даних MSDE ми будемо використовувати інший інструмент: EMS MS SQL Manager.

3.14. Де знайти EMS , MS та SQL Manager?

EMS, MS, SQL Manager — це графічний інструмент для роботи з SGBD Microsoft SQL Server і, відповідно, MSDE. Він дуже схожий на описаний раніше інструмент IB-Expert. Він доступний у версії URL [http://sqlmanager.net/] (квітень 2005 року):

Image

На сайті доступні адміністративні панелі для багатьох SGBD. Перейдіть за посиланням [MS SQL Manager]:

Image

Вище ми обираємо полегшену версію продукту. Завантажте та встановіть її. У вас з’явиться папка, схожа на таку:

Image

Виконуваний файл — [MsManager.exe]. Зазвичай у меню доступний ярлик [Démarrer]:

Image

Після запуску MS SQL Manager відображає таке вікно:

Image

Почнемо з реєстрації сервера MSDE, з яким ми хочемо працювати, за допомогою опції [Database/Register Host]:

Коментарі:

  • крок 1 — як уже зазначалося, MSDE підтримує два режими автентифікації: Windows та SQL Server. У режимі [windows] використовуються облікові записи комп’ютера під управлінням Windows. У режимі [SQL Server] використовуються облікові записи сервера SGBD. [SQL Server] може працювати в режимі [Windows] або в змішаному режимі [Windows, SQL Server]. Режим автентифікації [Windows] завжди доступний. Натомість змішаний режим автентифікації не завжди активний. Ми вже розглядали, як його активувати за допомогою MSDE Manager. У наведеному вище прикладі вхід відбувся за допомогою облікового запису адміністратора.
  • Крок 2 — після успішної автентифікації пропонуються бази даних MSDE за замовчуванням. Вище були вибрані всі з них.

Коментарі:

  • крок 3: можна вибрати параметри адміністрування обраних баз даних. Тут збережено параметри, запропоновані за замовчуванням.
  • Крок 4: ми реєструємо сервер MSDE за допомогою кнопки [Register]

Після цього сервер MSDE з’являється в оглядачі баз даних:

Image

Скористаємося опцією [Database/Create Database] для створення бази даних:

Крок 2:

Коли з’являється ця інформаційна сторінка, це означає, що база даних [dbarticles] створена. Перевірити це можна за допомогою кнопки [Test Connect]. У полі [Database alias] можна ввести будь-що. Тут ми вказали:

  • назву бази даних
  • назву сервера MSDE, на якому вона розміщена
  • ім'я користувача [admarticles], який буде власником цієї бази, та його пароль [mdparticles]. Цей користувач ще не створений, але буде створений найближчим часом.

Крок 3:

  • за допомогою кнопки [Register] ми реєструємо нову базу даних у [MS SQL Server ]. Після реєстрації база даних [admarticles] з’являється у списку баз даних. Подвійне клацання по ній відкриває дерево її властивостей.

Створимо новий логін для входу, який буде адміністратором бази даних [admarticles].

  • Виберіть опцію [Tools/Login manager]:

Image

  • Бачимо, що вже визначено два логіни:
    • [BUILTIN\Administrateurs]: цей обліковий запис використовує аутентифікацію Windows. Він представляє адміністраторів комп’ютера з ОС Windows, на якому розташований сервер MSDE
    • sa: цей логін використовує аутентифікацію SQL. За замовчуванням це адміністратор сервера MSDE. Нагадаємо, що тут, згідно з налаштуваннями під час встановлення SGBD MSDE, його пароль — [azerty].
  • Клацнімо правою кнопкою миші на області логінів і додамо новий логін:
  • З’явиться вікно, у якому ми визначаємо параметри нового логіна:

Image

  • Ім’я логіна: admarticles
  • Пароль: mdparticles
  • Після натискання кнопки [OK] менеджер MS показує нам запити SQL, які він буде виконувати:

Image

Мова SQL, представлена вище, — це Transact-SQL, мова SQL з MSDE. Ми запитуємо виконання цього коду за допомогою [OK]

  • новий логін додається до списку логінів:

Image

  • у вікні властивостей бази даних [dbarticles] клацніть правою кнопкою миші на [users], щоб створити користувача з правами доступу до бази даних [dbarticles]:

Image

  • після чого з’явиться таке вікно:

Image

  • у списку [Login] міститься перелік існуючих логінів. Вибираємо логін [admarticles].
  • У полі [Name] вказуємо ім’я користувача. До одного логіна може бути прив’язано декількох користувачів. Тому в MSDE для створення користувача спочатку потрібно створити логін. Панель [User] виглядає наступним чином:

Image

  • тепер перейдемо до панелі [Member Of], яка дозволить нам визначити права нашого користувача:

Image

  • Я не є постійним користувачем MSDE і не знаю точного значення кожної з ролей, запропонованих у лівому вікні. Роль [db_owner] виглядає привабливо (owner = власник). Тому ми обираємо її для нашого користувача [admarticles]:

Image

  • підтверджуємо наш вибір за допомогою кнопки [Compile], розташованої вище. Запити SQL, що подаються на виконання, є такими:

Image

  • ми компілюємо їх за допомогою [OK]. Тепер у нас є користувач бази даних [dbarticles]:

Image

  • Тепер створимо таблицю. Клацніть правою кнопкою миші на [Tables] і виберіть опцію [New Table]. З’явиться вікно налаштування властивостей таблиці:

Image

  • Спочатку дамо таблиці ім’я [ARTICLES], скориставшись полем введення [Table Name]. Далі перейдемо до панелі [Fields]:

Image

  • визначимо такі поля:

Image

Доки ми не «скомпілювали» наше визначення, таблиця не створюється. Скористаємося кнопкою [Compile] вище, щоб завершити визначення таблиці. [MS SQL Manager] готує запити SQL для створення таблиці та запитує підтвердження:

Image

Цікаво, що [MS SQL Manager] відображає запити SQL, які він виконав. Це дозволяє одночасно вивчати мову Transact-SQL. Кнопка [Commit] дозволяє підтвердити поточну транзакцію, а [Rollback] — скасувати її. Тут ми підтверджуємо її за допомогою [Commit]. Після цього [MS SQL Manager] додає створену таблицю до дерева нашої бази даних:

Image

Двічі клацнувши на таблиці, ми отримуємо доступ до її властивостей:

Image

Панель [Checks] дозволяє додати до таблиці нові обмеження цілісності. Для таблиці [ARTICLES] ми створимо такі обмеження:

  • поля [ID, PRIX, STOCKACTUEL, STOKMINIMUM] повинні бути >=0
  • поле [NOM] має бути не порожнім

У панелі [Checks] клацнімо правою кнопкою миші на порожній області, щоб додати нове обмеження [New check]:

Image

  • Вікно редагування обмежень виглядає наступним чином:

Image

Name: назва обмеження

Таблиця: таблиця, на яку діє обмеження

Визначення: вираз обмеження

Обмеження компілюється за допомогою кнопки [Compile], розташованої вище.

  • Знову [MS SQL Manager] показує виконані команди SQL:

Image

  • їх підтверджують за допомогою кнопки [Commit] (не показано). Якщо повернутися до панелі [Checks] таблиці [ARTICLES], з’являється нове обмеження:

Image

  • таким самим чином ми визначаємо інші обмеження, щоб у підсумку отримати такий список:

Image

Зробивши це, відкриємо панель [DDL] таблиці [ARTICLES]:

Image

Вона містить код Transact-SQL для створення таблиці з усіма її обмеженнями. Цей код можна зберегти у вигляді скрипта, щоб згодом його виконати:

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

Тепер настав час внести деякі дані в таблицю [ARTICLES]. Для цього скористаємося її панеллю [Data]:

Image

Кнопка [+] дозволяє додати рядок, а кнопка [-] — видалити його. Дані вводяться шляхом простого введення тексту в поля кожного рядка таблиці. Рядок підтверджується натисканням кнопки [Post Edit], розташованої нижче:

Image

Створимо два товари:

Image

[MS SQL Manager] дозволяє формувати запити SQL за допомогою опції [Tools/Show SQL Editor] або [F12]. Тоді ми отримуємо доступ до розширеного редактора запитів SQL, за допомогою якого можна відтворювати запити. Вони зберігаються в пам’яті, тож можна повернутися до запиту, який вже було відтворено. Ось приклад:

Image

Виконуємо запит SQL за допомогою кнопки [Execute], розташованої вище. Отримуємо такий результат:

Image

На цьому ми завершимо наші демонстрації. Комбінація [MS SQL Manager - MSDE], як і комбінація [IBExpert - Firebird], також чудово підходить для вивчення баз даних.

3.15. Створити джерело ODBC [MSDE]

Драйвер ODBC для сервера SQL зазвичай встановлюється за замовчуванням на комп’ютерах з ОС Windows.

  • Запустити інструмент [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • з’явиться таке вікно:

Image

  • додамо [Add] — нове джерело системних даних (панель [System DSN]), яке пов’яжемо з базою MSDE, яку ми створили в попередньому розділі:

Image

  • Спочатку нам потрібно вказати драйвер ODBC, який буде використовуватися. Вище ми вибираємо драйвер для [SQL Server], а потім переходимо до [Terminer]. Після цього запускається майстер драйвера ODBC для [SQL Server]:

Image

  • заповнюємо різні поля:
Nom [odbc-msde-articles]
назва джерела ODBC — може бути будь-якою
Description
може бути будь-яким
Serveur SQLMap
portable_tahe\msde140405
назва сервера MSDE, на якому зберігаються дані джерела ODBC
  • створюємо [Suivant] для надання нової інформації:

Image

  • заповнюємо різні поля:
Authentification SQL Server
вказуємо, що підключатимемося до джерела даних ODBC з іменем користувача, зареєстрованим на сервері MSDE
ID de connexion [admarticles]
логін користувача
Mot de passe [mdparticles]
пароль користувача
  • Зверніть увагу, що ми вперше використовуємо користувача (admarticles, mdparticles), створеного в попередньому розділі. Знову виконуємо [Suivant], щоб отримати наступний новий аркуш:

Image

  • заповнюємо різні поля:
Changer la base ...
вибираємо базу [dbarticles] як базу за замовчуванням для користувача [admarticles]
  • вводимо [Suivant], щоб отримати наступний новий аркуш:

Image

  • приймаємо значення за замовчуванням і створюємо [Terminer]. Наводимо підсумок характеристик джерела ODBC, яке буде створено:

Image

  • Кнопка [Tester la source de données] дає нам можливість перевірити правильність введених даних. Переконайтеся, що процес MSDE запущено, а потім перевірте з’єднання:

Image

  • тепер ми впевнені, що пара [admarticles, mdparticles] розпізнається.

Для проведення додаткових тестів читач може дотримуватися процедури, описаної в розділі 3.10.

3.16. Рядок підключення до бази даних MSDE

  • запустіть Visual Studio та відкрийте оглядач серверів [Affichage/Explorateur de serveurs]:
  • клацніть правою кнопкою миші на [Connexion de données] і виберіть опцію [Ajouter une connexion]:

Image

  • у панелі [Provider] вкажіть, що ви хочете використовувати джерело SQL Server, а потім перейдіть до панелі [Connection]. Зверніть увагу, що тут не використовується драйвер ODBC.

Image

Nom de serveur
[portable1_tahe\msde140405]
назва сервера MSDE, до якого здійснюється підключення
Nom d'utilisateur [admarticles]
ідентифікатор, який потрібно використовувати для підключення до бази даних
Mot de passe [mdparticles]
пароль, пов'язаний із цим ідентифікатором
base de données [dbarticles]
база даних, з якою потрібно працювати

Кнопка [Tester la connexion] дозволяє перевірити правильність введених даних:

Image

  • підтвердити роботу майстра за допомогою [OK]. Досить дивно, але у новому вікні запитуються параметри з’єднання:

Image

  • вводимо їх знову та виконуємо [OK]. Після цього джерело даних з’являється у вікні [Explorateur de serveurs] у Visual Studio:

Image

  • двічі клацнувши на таблиці [ARTICLES], ми отримуємо доступ до даних таблиці:

Image

  • якщо клацнути правою кнопкою миші на посилання [portable1_tahe\msde140405.dbarticles.admarticles] на панелі [Explorateur de serveurs] і вибрати опцію [Propriétés], можна отримати доступ до властивостей з’єднання:

Image

  • рядок з'єднання [ConnectString] — це важлива властивість, яку варто знати, оскільки код .NET потребує її для встановлення з'єднання з базою даних. У цьому випадку цей рядок з'єднання має вигляд:
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

Багато елементів цього рядка підключення мають значення за замовчуванням. Можна обмежитися таким рядком підключення:

"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;PASSWORD=mdparticles"