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

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

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅?

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ - это просто сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ гСнСрируСтся, ΠΊΠΎΠ³Π΄Π° появляСтся ошибка.

ВсС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ - SQLCODE ΠΈ GDSCODE - ΠΈΠΌΠ΅ΡŽΡ‚ ассоциированныС с Π½ΠΈΠΌΠΈ тСксты сообщСний. БообщСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° английском языкС, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки. БущСствуСт нСбольшоС количСство вСрсий сообщСний Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ латинский!), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ»ΠΈ "находятся Π² Ρ€Π°Π±ΠΎΡ‚Π΅", ΠΈΠ»ΠΈ "ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ"[127].

Π’ Firebird сущСствуСт синтаксис DDL для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с тСкстами сообщСний Π΄ΠΎ 78 символов. Π’ Firebird 1.5 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²ΠΎ врСмя выполнСния, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст сообщСния, посылаСмого ΠΏΠΎ сСти, Π² зависимости ΠΎΡ‚ контСкста.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых простых элСмСнтов DDL. Бинтаксис:

CREATE EXCEPTION имя-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ <сообщСниС>;

Имя-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ- ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Firebird Π΄ΠΎ 31 символа Π΄Π»ΠΈΠ½ΠΎΠΉ. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ срСди ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π° Π² Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ 3 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π’ΠΎΠ³Π΄Π° имя Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру.

<сообщСниС> - Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² апострофы строка тСкста Π² Π½Π°Π±ΠΎΡ€Π΅ символов NONE. Из-Π·Π° ограничСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° тСкст Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ. НапримСр:

CREATE EXCEPTION NO_DOGS 'NO dogs allowed!'; COMMIT;

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CREATE EXCEPTION Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½, ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ DDL.


ИзмСнСниС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ SYSDBA ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² любоС врСмя. Если ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст сообщСния. НС хранится Π½ΠΈΠΊΠ°ΠΊΠΈΡ… зависимостСй для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…. Π­Ρ‚ΠΎ создаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² случаС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ удаляСтС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚Π΅ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ - Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π»ΠΎΠ²ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ отсутствия ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ!

Для удалСния нашСго ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NO_DOGS Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

DROP EXCEPTION NO_DOGS;

Для Π΅Π³ΠΎ измСнСния:

ALTER EXCEPTION NO_DOGS 'NO dogs allowed except Irish Wolfhounds!';


! ! !

Π‘ΠžΠ’Π•Π’. ΠŸΡ€ΠΈ конструировании скриптов схСмы сгруппируйтС вмСстС всС ваши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ CREATE EXCEPTION, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ‚Ρ‹ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ†Π΅Π»ΡŒΡŽ докумСнтирования. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ прСфиксы ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ систСму имСнования ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² соотвСтствии с катСгориями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

. ! .


Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² дСйствии

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ядром сСрвСра Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ прСкращСния выполнСния. Они ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ большоС количСство условий, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, арифмСтичСскиС ΠΈ строковыС пСрСполнСния, ссылки Π½Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ SQLCODE ΠΈ GDSCODE ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ самыми ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ появлСнии ошибок Π² процСссС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ динамичСского SQL. Они описаны Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 10.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, доступныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² модулях PSQL, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠΉΡ‚Π΅ ваши ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для использования Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π² вашСм ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ ситуации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ ваши бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π’Ρ€ΠΈ Π²ΠΈΠ΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° рис. 32.1.

Π£ нас Π±Ρ‹Π» Π² Π³Π»Π°Π²Π΅ 30 ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΎΡΡŒ Π² Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π΅ для прСкращСния события, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΠ»ΠΎ Π±Ρ‹ бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ. Π’ этом случаС хранимая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° позаботится ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ зависимости ΠΈΠ· ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ структуры ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ слуТащСго. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ объявлСно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


CREATE EXCEPTION REASSIGN_SALES

'Reassign the sales records before deleting this employee.' ^

/* ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ записи ΠΏΡ€ΠΎΠ΄Π°ΠΆ ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ этого слуТащСго */

COMMIT ^


Рис. 32.1. Бтандартная рСакция PSQL Π½Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ


Π’ Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° провСряСт, являСтся Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ слуТащий участником ΠΏΡ€ΠΎΠ΄Π°ΠΆ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π°ΠΆ. Если Π΄Π°, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.


BEGIN

IE (EXISTS (SELECT PO_NUMBER FROM SALES

WHERE SALES_REP = : emporium) ) THEN

EXCEPTION reassign_sales;


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. Π’ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… Π²Ρ‹Π±ΠΎΡ€Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ†ΠΈΠΊΠ»Π°Ρ… FOR SELECT ... DO ... SUSPEND, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ доступными для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. О ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ Π² этом случаС, см. Π΄Π°Π»Π΅Π΅ Ρ€Π°Π·Π΄. "ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHERE".

. ! .


Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ способ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прямо Π² этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ рассматриваСтся, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эта Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ исправлСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ REASSIGN_SALES.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Код PSQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΏΡ€ΠΈ ΠΈΡ… появлСнии ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Если ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² вашСм ΠΊΠΎΠ΄Π΅- Π²Ρ‹ обСспСчитС исправлСниС ΠΈΠ»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ ошибки ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, - Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π΅ возвращаСтся Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ сообщСния ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. Рис. 32.2 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ выполнСния Π² Π±Π»ΠΎΠΊΠ΅. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ END, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° отыскиваСт ΡƒΡ€ΠΎΠ²Π½ΠΈ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ…, начиная с Π±Π»ΠΎΠΊΠ°, Π³Π΄Π΅ Π±Ρ‹Π»Π° выявлСна ошибка, ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° внСшниС Π±Π»ΠΎΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ "Π·Π½Π°Π΅Ρ‚" ΠΎ Ρ‚Π°ΠΊΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. Она отыскиваСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHEN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHEN

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHEN ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

WHEN <ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅> DO <составной-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€>

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…:

<имя-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ> | GDSCODE ΠΊΠΎΠ΄ | SQLCODE ΠΊΠΎΠ΄ \ ANY

<составной-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€> ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ мноТСством ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² PSQL, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² Π±Π»ΠΎΠΊ BEGIN ... END.


Рис. 32.2. Π›ΠΎΠ³ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок


ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΈΠΏΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² структурах синтаксиса, прСдставляСт объСм области видимости.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ Π²Π°ΠΌΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π΅ Π² состоянии Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ограничСниях. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ WHEN ΠΈ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Π»ΠΎΠΊ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ошибка.


Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ являСтся GDSCODE. Π’ вСрсии 1.0.x это контСкстная пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π΅ WHEN:

WHEN GDSCODE foreign_key DO

BEGIN

. . .

END

Начиная с вСрсии 1.5, GDSCODE являСтся "ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ" контСкстной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈ Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ Π² записи ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°.


! ! !

Π‘ΠžΠ’Π•Π’. ВсС ΠΊΠΎΠ΄Ρ‹ GDSCODE ΠΈΠΌΠ΅ΡŽΡ‚ символичСскиС константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ понятными для людСй, Π·Π½Π°ΡŽΡ‰ΠΈΡ… английский язык. ИмСнно эти символичСскиС константы Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… WHEN GDSCODE, Π° Π½Π΅ числовыС ΠΊΠΎΠ΄Ρ‹. Если Π²Ρ‹ посмотритС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» iberror.h Π² вашСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /include, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ символичСских констант ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс isc_. Π­Ρ‚ΠΎΡ‚ прСфикс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… WHEN GDSCODE.

. ! .


НСкоторыС ошибки, выявлСнныС Π² GDSCODE, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ исправлСны Π²Π½ΡƒΡ‚Ρ€ΠΈ области дСйствия Π±Π»ΠΎΠΊΠ°, Π³Π΄Π΅ ΠΎΠ½ΠΈ появились. Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ WHEN для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ошибок Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ здСсь, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π²ΠΎ внСшний Ρ†ΠΈΠΊΠ» для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΌ ошибок.

Код SQLCODE являСтся довольно ΠΎΠ±Ρ‰ΠΈΠΌ, ΠΎΠ½ Π½Π΅ всСгда соотвСтствуСт Ρ‚ΠΈΠΏΡƒ ошибки. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ SQL ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ SQLCODE 0 ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΈ SQLCODE 100 ΠΏΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… "сСгмСнтов" находится ΠΌΠ΅ΠΆΠ΄Ρƒ 1 ΠΈ 99 для ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сообщСний. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ошибок SQLERROR - ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС -1000. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ ошибок SQLERROR Π² SQLCODE ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ΄ΠΎΠ² GDSCODE.

Как ΠΈ GDSCODE, SQLCODE допускаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π² вСрсии 1.0.x, Π½ΠΎ становится настоящСй контСкстной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² вСрсии 1.5 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ».


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ GDSCODE, Π»ΠΈΠ±ΠΎ SQLCODE. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ NULL для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

. ! .


ΠšΠΎΠ΄Ρ‹ SQLCODE ΠΌΠ΅Π½Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΌΠ΅Π½Π΅Π΅ всСго подходят для условий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ исправлСны Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠ΄Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 10, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ΄ SQLCODE Ρ‡Π°Ρ‰Π΅ всСго Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько ΠΊΠΎΠ΄ΠΎΠ² GDSCODE. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π²ΠΎ внСшнСм Π±Π»ΠΎΠΊΠ΅ модуля.