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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠœΠΈΡ€ InterBase. АрхитСктура, администрированиС ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² InterBase/FireBird/YaffilΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 102

Автор А Ковязин

Π’ΠΎΡ‚ список Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… систСмных Ρ‚Π°Π±Π»ΠΈΡ† для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² InterBase 7 с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ описаниями, взятый с сайта www.ibase.ru:

Π’Π°Π±Π» 2. БистСмныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² InterBase 7

ДоступныС систСмныС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

НазваниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π§Ρ‚ΠΎ содСрТит

TMPSATTACHMENTS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ соСдинСниС ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

TMP$DATABASE

По записи Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ подсоСдинились

TMP$POOL_BLOCKS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡƒΠ»Π΅

TMP$POOLS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ» памяти

TMP$PROCEDURES

По записи Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ Π² Π΄Π°Π½Π½ΠΎΠΌ соСдинСнии ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ

TMP$RELATIONS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ соСдинСнии

TMPSSTATEMENTS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ выполняСмый Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ запрос, для всСх соСдинСний

TMP$TRANSACTIONS

По записи Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ (ΠΈΠ»ΠΈ Π² состоянии limbo) Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ систСмных Ρ‚Π°Π±Π»ΠΈΡ†

Помимо чтСния статистики, Π΅ΡΡ‚ΡŒ ряд случаСв, ΠΊΠΎΠ³Π΄Π° систСмныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ! ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, это Ρ‚ΠΎΡ‚ Π²Π°ΠΆΠ½Ρ‹ΠΉ случай, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, зависший запрос.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° состояниС запросов, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, соСдинСний ΠΈ Ρ‚.Π΄., Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ столбСц TMP$STATE Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ систСмной Ρ‚Π°Π±Π»ΠΈΡ†Π΅. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ произвСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния:

* ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ соСдинСниС.

UPDATE TMP$ATTACHMENTS SET TMP$STATE = 'SHUTDOWN' WHERE (TMP$ATTACHMENT_ID = 12345)

* ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ "Π·Π°ΡΡ‚Ρ€ΡΠ²ΡˆΡƒΡŽ" 2Π Π‘ (Ρ‚. Π΅. Π² состоянии in limbo) Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.

UPDATE TMP$TRANSACTION SET TMP$STATE = 'ROLLBACK' WHERE (TMP$TRANSACTION_ID = 12345)

* ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ выполняСмый Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ запрос.

UPDATE TMP$STATEMENTS

SET TMP$STATE = 'CANCEL'

WHERE (TMP$STATEMENT_ID = 12345)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ получСния статистики

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ использования систСмных Ρ‚Π°Π±Π»ΠΈΡ† для получСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ статистики ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ запросы:

* 10 самых Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ запросов.

SELECT a.tmp$user, s.tmp$timestamp/ s.tmp$sql, s.tmp$quantum

FROM tmp$statements s, tmp$attachments a

WHERE a.tmp$attachment_id = s.tmp$attachment_id

ORDER BY s.tmp$quantum DESC

ROWS 10;

* ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ SYSDBA.

SELECT TMP$USER, TMP$USER_IP_ADDR,

TMP$TIMESTAMP, TMP$STATE, TMP$TRANSACT10NS, TMP$RECORD_SELECTS, TMP$RECORD_INSERTS,

TMP$RECORD_UPDATES, TMP$RECORD_DELETES FROM TMP$ATTACHMENTS WHERE TMP$USER = 'SYSDBA'

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΌΠΎΡ‰Π½Ρ‹Ρ… возмоТностСй Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† Π² Π½Π΅Π±Π»Π°Π³ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… цСлях, Π½Π° Π½ΠΈΡ… Π²Π²Π΅Π΄Π΅Π½Ρ‹ ограничСния ΠΏΡ€Π°Π² доступа - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄ΠΈΠΌΡ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ SYSDBA. Π’ случаС нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅) для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ - ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° GRANT ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ REVOKE.

JDBC Π’ΡƒΡ€Π΅ 4 DRIVER

Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ - Π½Π°ΠΊΠΎΠ½Π΅Ρ† Ρƒ InterBase появился собствСнный "Ρ‚ΠΎΠ½ΠΊΠΈΠΉ" JDBC-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ - InterClient 3.0. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Ρ€ΠΎΠ΄Π΅ InterServer - достаточно просто ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ interclient.jar Π² свою строку CLASSPATH ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с InterBase 7. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ распространСниС Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… InterBase.

Помимо упрощСния распространСния, InterClient 3.0 ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡƒΠ» соСдинСний (Connection Pooling) ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ источников Π΄Π°Π½Π½Ρ‹Ρ… (DataSource). Π’Π°ΠΊΠΆΠ΅ InterClient 3.0 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Blob-полями InterBase 7.

Π₯очСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ InterBase 7 с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ Borland, ΠΊΠ°ΠΊ JBuilder ΠΈ Borland Enterprise Server. Π­Ρ‚Π° связка Π‘Π£Π‘Π”, ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ application-сСрвСра позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ J2EE-ΠΏpΠΈΠ»oΠΆeния.

НСкоторым нСдостатком InterClient 3.0 JDBC Type 4 являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с 7-ΠΉ вСрсиСй InterBase, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π² прилоТСниях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ старыС вСрсии, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ Ρ‚Π΅ΠΌ ΠΎΠ³ΠΎΡ€Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ InterClient - Open Source JayBird ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Firebird developers всС Π΅Ρ‰Π΅ находится Π² стадии Π±Π΅Ρ‚Π°-тСстирования, ΠΈ поэтому мноТСство Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ старыми вСрсиями InterClient - JDBC Type 3. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ InterServer для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Для Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² поставку InterBase 7 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ InterClient JDBC Type 3.

Новая структура Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дискС: ODS11

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, созданныС (ΠΈΠ»ΠΈ восстановлСнныС) Π² InterBase 7, ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… - On-Disk Structure (ODS). Новая вСрсия ODS нСсовмСстима с ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌΠΈ ODS. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ старыС вСрсии InterBase ΠΈ ΠΊΠ»ΠΎΠ½Ρ‹ InterBase Open Source (Firebird ΠΈ Yaffil) Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ODS11.

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π½ΠΎΠ²ΡƒΡŽ ODS Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· backup/restore - ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ самому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‡Ρ‚ΠΎ описан Π² Π³Π»Π°Π²Π΅ "ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ". Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² InterBase 7 всС ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1-Π³ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π°, хотя ΠΏΡ€ΠΈ выпускС 6-ΠΉ вСрсии объявлялось, Ρ‡Ρ‚ΠΎ Π΄Π°Π»Π΅Π΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ 1 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Однако ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² 1-ΠΌ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° 3-ΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ InterBase 7 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ 3-ΠΉ, Ρ‚Π°ΠΊ ΠΈ 1-ΠΉ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚.

НиТС ΠΌΡ‹ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ рассмотрим ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ нововвСдСния, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ отвСтствСнныС Π·Π° появлСниС 11-ΠΉ вСрсии On-Disk Structure.

Новый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…: BOOLEAN

InterBase Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… BOOLEAN Π² соотвСтствии со стандартом SQL99. Поля ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° BOOLEAN ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния TRUE/FALSE/UNKNOWN (Π΄Π°-Π΄Π°, ΠΈ здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ трСхзначная Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠ°ΠΊ ΠΈ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ понятиС Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ значСния). Π Π°Π·ΠΌΠ΅Ρ€ BOOLEAN - 32 Π±ΠΈΡ‚Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° BOOLEAN, достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого: CREATE TABLE Tab!el(MyBOOL BOOLEAN)

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ значСниям Ρ‚ΠΈΠΏΠ° BOOLEAN - TRUE, FALSE ΠΈ UNKNOWN ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ†Π΅Π»Ρ‹Π΅ значСния 0, 1 ΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL.

НовыС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова

Π’ Interbase 7 появились Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, связанныС с Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ BOOLEAN:

BOOLEAN, TRUE, FALSE, UNKNOWN

Π₯очСтся ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии (6.5) Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова:

ROWS, TIES, PERCENT

Π˜Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ InterBase 6.5.

ИмСна ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 68 символов

ВозмоТная Π΄Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² InterBase 7 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π²Π½Π° 67 символов вмСсто 31 символа Ρ€Π°Π½Π΅Π΅. Π”Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ 67 - хотя Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ этого Ρ€Π°Π·Π΄Π΅Π»Π° написано 68. фактичСски хранится лишь 67 символов, Π° послСдний символ прСдставляСт собой Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ 0.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ клиСнтской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ gds32.dll (Π° Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π’ΡƒΡ€Π΅ 4 Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° структура XSQLDA. Надо ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСсьма нСприятно сказалось Π½Π° клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… доступа ΠΊ InterBase, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ IBX, FIBPlus, dbExpress ΠΈ Ρ‚. Π΄. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСвСсти вашС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΠΎΠ΄ InterBase 7, понадобится ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ клиСнтскиС прилоТСния с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Blob ΠΈ массивами

Π‘Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ 10 Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ InterBase API для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². НиТС прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ API:

isc_array_gen_sd!2()

isc_array_get_slice2()

isc_array_lookup_bounds2()

isc_array_lookup_desc2()

isc_array_set_desc2()

isc_array_put_slice2()

isc_blob_default_desc2()

isc_blob_gen_bpb2()

isc_blob_lookup_desc2()

isc_blob_set_desc2()

Π”Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния Π² 7-ΠΉ вСрсии InterBase

SET TERM большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Π² isql

Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· Π³Π»Π°Π²Ρ‹ "Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹", для создания Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQL-скриптов ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° isql Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡ‚ΡŒ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ создания ΠΈ измСнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ смСны раздСлитСля.

Π’ 7-ΠΉ вСрсии Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½ΡƒΠΆΠ΄Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SET TERM - Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ SQL ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, которая Ρ€Π°Π½Π΅Π΅ являлась просто Π½ΠΎΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π²ΠΎ всяком случаС, для Ρ‚Π΅Ρ… ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ).

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ вСрсии ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

НСкоторыС клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ клиСнтской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Interbase. Для этого Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API:

isc_get_client_version(),

isc_get_client_major_version(),

isc_get_client_minor_version().

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ EXTERNAL FILE DIRECTORY

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях внСшниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (external table) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² бСзопасности. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях InterBase, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΊΡ€Π°ΡΡ‚ΡŒ всю Π±Π°Π·Ρƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ послСднСго Π±Π°ΠΉΡ‚Π°!

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

* Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ <interbase_hoine>/ext. InterBase Π±ΡƒΠ΄Π΅Ρ‚ сначала ΠΈΡΠΊΠ°Ρ‚ΡŒ внСшниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.