Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 134

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

. ! .


ПолСзной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ sql ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² скриптов Firebird. Помимо ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ скриптов Π² вашСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ sql Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» SQL ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ инструмСнтами рСдактирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ подсвСтку синтаксиса SQL.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ²

Для компиляции любого Ρ„Π°ΠΉΠ»Π° скрипта Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ», ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½Ρƒ "ΠΏΡƒΡΡ‚ΡƒΡŽ строку" послС послСднСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ коммСнтария. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΆΠΌΠΈΡ‚Π΅, ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Return> (Enter) Π² вашСм тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Когда Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ созданиС вашСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, сохранитС Π΅Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ²ΡˆΠΈΠΌΡΡ Π²Π°ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Для компиляции вашСй Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ваш скрипт с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ INPUT Π² isql ΠΈΠ»ΠΈ Π² интСрфСйсС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ скриптов вашСго инструмСнта управлСния Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….


Ошибки Π² скриптах

Firebird Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки Π² процСссС синтаксичСского Ρ€Π°Π·Π±ΠΎΡ€Π°, Ссли присутствуСт Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ синтаксис Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ CREATE PROCEDURE | TRIGGER. БообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


Dynamic SQL Error

-SQL error code = -104

-Token unknown - line 4, char 9

-tmp


НумСрация строк начинаСтся со строки, содСрТащСй ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CREATE, Π° Π½Π΅ Π‘ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π° скрипта. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт указываСтся Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа источника ошибки, Π»ΠΈΠ±ΠΎ Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ символа источника ошибки. Если Π΅ΡΡ‚ΡŒ сомнСния, провСряйтС всю строку для опрСдСлСния источника синтаксичСской ошибки.


! ! !

Π‘ΠžΠ’Π•Π’. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ isql, Π±ΠΎΠ»Π΅Π΅ позднюю, Ρ‡Π΅ΠΌ Firebird 1.0, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Π΅Π΅ возмоТностСй Π² описании ошибок Π² скриптах ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΈΡ… располоТСния. Π₯отя Firebird Π½Π΅ содСрТит срСдств ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ инструмСнты сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности.

. ! .


Зависимости ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π‘Π΅Ρ€Π²Π΅Ρ€ Firebird ΠΏΠ΅Π΄Π°Π½Ρ‚ΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ взаимозависимостях ΠΌΠ΅ΠΆΠ΄Ρƒ управляСмыми ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НСобходимы ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ соглашСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, находящихся Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² использовании Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° находится "Π² использовании" (procedure is in use), ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполняСтся, ΠΈΠ»ΠΈ Ссли ΠΎΠ½Π° Π±Ρ‹Π»Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ скомпилирована Π² кэш ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ запросу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ALTER ΠΈΠ»ΠΈ DROP, Ссли скомпилированная вСрсия Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² кэшС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

ИзмСнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ клиСнтским прилоТСниям, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ отсоСдинятся ΠΎΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вновь Π½Π΅ присоСдинятся ΠΊ Π½Π΅ΠΉ.


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈΠ»ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ созданы, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступа ΠΊ Π½ΠΎΠ²ΠΎΠΉ вСрсии, ΠΏΠΎΠΊΠ° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ окаТСтся Π² состоянии, ΠΊΠΎΠ³Π΄Π° всС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹.

. ! .


Π˜Π΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ - Π²Ρ‹Π΄Π°Ρ‡Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² CREATE, RECREATE ΠΈ ALTER для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ PSQL Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° Π½Π΅ выполняСтся Π½ΠΈ ΠΎΠ΄Π½ΠΎ клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.


ИзмСнСниС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Когда Π²Ρ‹ измСняСтС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ замСняСт ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Для измСнСния опрСдСлСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» исходного опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащий ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ isql -extract для выдСлСния исходного тСкста ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² тСкстовый Ρ„Π°ΠΉΠ».

2. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ», Π·Π°ΠΌΠ΅Π½ΠΈΠ² CREATE Π½Π° RECREATE ΠΈΠ»ΠΈ ALTER ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

3. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ скрипт ΠΏΡ€ΠΈ "чистых" условиях, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ описано Ρ€Π°Π½Π΅Π΅. Для удалСния модуля Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

DROP {PROCEDURE | TRIGGER} имя-модуля;


ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ

Волько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ SYSDBA ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹/Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ.


Ошибка "ΠžΠ±ΡŠΠ΅ΠΊΡ‚ находится Π² использовании"

Ошибка "Object is in use" (ΠžΠ±ΡŠΠ΅ΠΊΡ‚ находится Π² использовании) расстраиваСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ какая-Π»ΠΈΠ±ΠΎ другая. Π’Ρ‹ соСдинились с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ SYSDBA ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π£ вас ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π²Π΄Ρ€ΡƒΠ³ появляСтся ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ этой Π·Π°Π³Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ситуаций.

* ΠŸΡ€ΠΈ остановС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (shut down), ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа Π²Ρ‹ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ) ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ соСдинСны ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ SYSDBA, Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΈΠ»ΠΈ (Π² Linux/UNIX) ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с подходящими привилСгиями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условий останова Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Firebird ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ всС ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ послС Π½Π°Ρ‡Π°Π»Π° останова. Π›ΡŽΠ±Π°Ρ нСподтвСрТдСнная транзакция (ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹ ΠΎΠ½Π° Π½ΠΈ Π±Ρ‹Π»Π° - Π΄Π°ΠΆΠ΅ SELECT), которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, зависящий ΠΎΡ‚ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависит наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ.

* "ЗаинтСрСсованная транзакция", которая остаСтся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ зависимости, связанныС с нашим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

* Π’Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с подходящими привилСгиями Ρ€Π°Π½Π΅Π΅ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ зависимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ опСрация Π±Ρ‹Π»Π° ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚Π° ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ находился Π² использовании.


! ! !

Π’ΠΠ˜ΠœΠΠΠ˜Π•! Вакая ситуация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ нСсогласованностСй Π² вашСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ссли gbak выполнялся Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Ρ‚Π°ΠΊΠΎΠΌ состоянии, Ρ‚ΠΎ восстановлСниС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π²Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΈ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΅Π΅ появлСния, рассматривайтС Π΅Π΅ ΠΊΠ°ΠΊ сигнал, Ρ‡Ρ‚ΠΎ ваша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… нуТдаСтся Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ дальнСйшиС измСнСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (см. Π³Π»Π°Π²Ρƒ 39).

. ! .


Для просмотра Π² isql списка ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΠΈ ΠΈΡ… зависимостСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SHOW PROCEDURES ΠΈΠ»ΠΈ SHOW TRIGGERS соотвСтствСнно.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ исходных тСкстов ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто хотят "ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ" исходныС ΠΊΠΎΠ΄Ρ‹ ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ PSQL ΠΏΡ€ΠΈ распространСнии Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ исходныС тСксты Π±Π΅Π· воздСйствия Π½Π° возмоТности модуля. Волько ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ послСдниС вСрсии скриптов, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ!

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ хранятся Π² систСмной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ RDB$PROCEDURES ΠΈ RDB $ TRIGGERS.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ исходного тСкста ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:


UPDATE RDB$PROCEDURES

SET RDB$PROCEDURE_SOURCE = NULL

WHERE RDB$PROCEDURE NAME = 'MYPROC';


Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ исходного тСкста Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°:

UPDATE RDB$TRIGGERS

SET RDB$TRIGGER_SOURCE = NULL

WHERE RDB$TRIGGER_NAME = 'MYTRIGGER';


! ! !

Π’ΠΠ˜ΠœΠΠΠ˜Π•! Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ исходных ΠΊΠΎΠ΄ΠΎΠ² Π½Π΅ остановит Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ собираСтся ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ ваш исходный ΠΊΠΎΠ΄. Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ хранится Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ просто ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² PSQL. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ€Π΅ΡˆΠΈΡ‚Π΅, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π²Ρ‹Π³ΠΎΠ΄Π° ΠΎΡ‚ утаивания PSQL большС Π·Π°Ρ‚Ρ€Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊΡ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ систСму, понСсут ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ возмоТности просмотра ΠΈ выдСлСния исходного тСкста.

. ! .


ΠŸΠΎΡ€Π° дальшС

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим возмоТности языка PSQL ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ структуризации вашСго ΠΊΠΎΠ΄Π°. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ° Π² ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ описываСт RDB$DB_KEY, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ PSQL.

ГЛАВА 30. Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° являСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, написанной Π½Π° языкС PSQL Firebird, скомпилированной ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ язык Firebird ΠΈ сохранСнной ΠΊΠ°ΠΊ исполняСмый ΠΊΠΎΠ΄ Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ скомпилированная, хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° нСпосрСдствСнно ΠΈΠ· прилоТСния ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ модуля PSQL с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° EXECUTE PROCEDURE ΠΈΠ»ΠΈ SELECT Π² соотвСтствии с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ стилСм ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ запроса. Они ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ прилоТСниям Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π―Π·Ρ‹ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² Firebird Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ манипулирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π² Ρ‚ΠΎΠΌ числС конструкции IF ... THEN ... ELSE, WHILE ... DO, FOR SELECT ... DO, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² систСмС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок ΠΈ события.

Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм динамичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² SQL. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ· isql ΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для использования с Firebird. Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² скриптах с Ρ‚Π΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ константами ΠΈ Π½Π΅ сущСствуСт Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ². Π’ скриптах Π½Π΅ сущСствуСт возмоТности ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.