Читати онлайн Firebird КЕРІВНИЦТВО РОЗРОБНИКА БАЗ ДАНИХ автора Боррі Хелен - RuLit - Сторінка 203

Щоб запустити isql, відкрийте командний рядок і перейдіть до каталогу Firebird /bin вашої інсталяції Firebird на сервері або клієнті. Наберіть наступну команду у підказці командного рядка та натисніть клавішу :

isql [ім'я-бази-даних] [-u[ser] -pas[sword] ]

Ім'я бази даних не є обов'язковим. Якщо ви його вказуєте, то isql відкриватиме з'єднання із вказаною базою даних. Це має бути або повний шлях до бази даних з того місця, де ви знаходитесь, або правильний аліас у версії 1.5 і пізніших.

Перемикачі -user та -password є необов'язковими, коли ви запускаєте isql без вказівки зв'язку з базою даних, і потрібні, коли ви запускаєте isql у віддаленому режимі. Якщо змінні оточення ISC USER та ISC PASSWORD не встановлені, ім'я користувача та пароль потрібні при старті isql локально.

Запуск програми у POSIX:

./isql -user TEMPDBA -password osoweary [у POSIX] isql -user TEMPDBA -password osoweary [у Windows]

запускається програма та зберігаються задані ім'я користувача та пароль без їх ідентифікації.

isql hotchicken:/data/mydatabase.fdb -user TEMPDBA -password osoweary

Ця команда запускає програму на клієнті Windows і з'єднується з базою даних на сервері POSIX, надаючи вірні на сервері ім'я користувача та пароль.

запускає локально програму на сервері Linux і з'єднується з базою даних у припущенні, що змінні оточення ISC_USER і ISC_PASSWORD встановлені і доступні вашому профілю користувача в Linux.

Якщо ви підключилися до бази даних під час запуску isql, ви побачите консоль, схожу на рис. 37.1. Конкретний вигляд вікна командного рядка залежить від операційної системи. Командний рядок isql є однаковим для всіх платформ.

Мал.37.1. Консоль, що відображається під час запуску isql з підключенням до бази даних

Якщо ви не ввели шлях до бази даних або ім'я користувача та пароль не визначено на сервері, ви побачите щось схоже на рис. 37.2.

Мал. 37.2. Консоль, що відображається під час запуску isql без підключення до бази даних

Якщо у командному рядку були помилки або виникли проблеми з ідентифікацією користувача, можна також побачити повідомлення про помилку. Якщо ви бачите підказку SDQ>, ви знаходитесь в командному рядку isql і можете з неї з'єднуватися з базою даних.

З'єднання з базою даних

Для з'єднання з базою даних підказки SQL> командного рядка isql використовуйте наступний приклад як зразок синтаксису. Зверніть увагу, що синтаксис всередині командного рядка isql відрізняється від синтаксису, який використовується при передачі параметрів з'єднання та системного командного рядка.

USER 'SYSDBA' PASSWORD 'masterkey';

з'єднує з віддаленим або локальним сервером під назвою HOTCHICKEN.

з'єднує з локальним сервером, на якому isql вже знає ваше ім'я користувача та пароль - або тому, що ви правильно ввели їх при запуску isql, або тому що isql виконується в командному рядку, який може бачити змінні оточення ISC_USER та ISC_PASSWORD.

CONNECT 'HOTCHICKEN:EMP3' USER 'SYSDBA' PASSWORD 'masterkey';

еквівалентно першому прикладу Firebird версії 1.5 і вище; при цьому використовується аліас, що зберігається у файлі aliases.conf на сервері, який вказує шлях.

еквівалентно другому прикладу. У isql похила риса може бути прямою та зворотною.

У Windows не плутайте імена серверів та імена спільно використовуваних дисків. Мережа клієнт-сервер не розпізнає диски і каталоги, що розділяються (mapped drive, sharedfolder). Ідентифікатор диска повинен завжди вказувати на фактичну літеру жорсткого диска або розділу на серверній машині.

Незалежно від того, чи ви з'єдналися з командного рядка або зробили це всередині командного рядка isql, ідентифікація користувача буде помилковою, якщо сервер не розпізнає ім'я користувача або пароль. Наприклад, на рис. 37.3 показано, що ви побачите, якщо оператор CONNECT буде хибним.

Мал. 37.3. Помилкова ідентифікація користувача

Якщо таке сталося, двічі перевірте, чи правильно ви вказали ім'я користувача та пароль, і чи в правильному регістрі введено пароль. Пароль чутливий до регістру, а імені користувача немає.

Термінатором оператора за замовчуванням є точка з комою (;), яка використовується у всіх прикладах у цьому розділі. Цей термінатор можна змінити будь-яким іншим символом або групою символів за допомогою команди SET TERM[INATOR]. Наприклад, щоб замінити його на "!!", використовуйте наступний оператор:

Продовження рядка підказки

Якщо ви натиснете клавішу , забувши завершити оператор термінатором, ви побачите продовження підказки CON> замість підказки isql SQL>:

SQL> SHOW DATABASE

Якщо це було помилкою, просто наберіть термінатор і знову натисніть . Причому ви можете використовувати цю можливість, щоб зробити текст більш читаним, наприклад:

SQL> CREATE TABLE ATABLE (

CON> ID INTEGER NOT NOLL,

CON> DATA VARCHAR(20),

CON> DATE_ENTERED DATE

CON> DEFAULT CURRENT_DATE

Транзакції в isql

Керування транзакціями в isql відрізняється залежно від того, чи вводите оператор DDL, команду SHOW або інші види операторів.

Коли isql стартує, вона запускає транзакцію із рівнем ізоляції.SNAPSHOT (паралельний) із встановленням дозволу блокувань WAIT. Якщо ви не виконуєте оператори DDL і не команди SHOW, транзакція продовжує залишатися поточною, доки ви не видасте оператор COMMIT або ROLLBACK.

Ви можете розпочати явну транзакцію, підтвердивши поточну транзакцію, та видавши оператор SET TRANSACTION. Наприклад, для початку транзакції READ COMMITTED NO WAIT введіть:

SQL> SET TRANSACTION

CON> NO WAIT READ COMMITTED;

При завершенні вашого завдання просто видайте, як завжди, оператор COMMIT. Наступний оператор поверне систему до конфігурації за промовчанням.

Щоразу, коли ви видаєте оператор DDL, isql стартує для нього спеціальну транзакцію і негайно підтверджує її після того, як ви натискаєте клавішу . Одразу після цього стартує нова транзакція. Ви можете змінити автоматичну поведінку, видавши команду SET AUTODDL OFF з підказки SQL до початку виконання ваших операторів DDL: