ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ? ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°Ρ , ΡΠΎ Π²ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ - ΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΡΠΈΠΏΠ° ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° - Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Ρ InterBase Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ Π² ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π²Π½ΡΡΡΠΈΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°ΡΡ/Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ FIBPlus), Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Ρ Π² ΡΡΡΠΎΠΊΠΈ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² InterBase.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠ΅Π·Π°ΡΡ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΉ Π΄Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΡΡ? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³ΡΡΠΏΠΏΠ° ΡΡΠ½ΠΊΡΠΈΠΉ EXTRACT (Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΊΠ»ΠΎΠ½Π°Ρ InterBase 6.x), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΠ· Π΄Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΡ ΡΠ°ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
EXTRACT (MONTH FROM DATE_FIELD)
EXTRACT (YEAR FROM DATE_FIELD)
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΠΈ EXTRACT ΡΠ°ΠΊΠΎΠ²: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, WEEKDAY, YEARDAY. ΠΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π·Π΄Π΅ΡΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ.
Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°
Π InterBase ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ - CHAR ΠΈ VARCHAR. ΠΠΎΠ»Π½ΡΠ΅ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡ, - CHARACTER ΠΈ CHARACTER VARYING, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ - Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Show tables Π² ΡΡΠΈΠ»ΠΈΡΠ΅ isql Π²ΡΠ΄Π°Π΅Ρ ΠΊΡΠ°ΡΠΊΠΈΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠΏΠ° Π»ΠΈΠ±ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² - ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΏΠΎΠ»Π΅ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ 1 ΡΠΈΠΌΠ²ΠΎΠ».
CREATE TABLE testCHARLen(
Fieldl CHAR(255),
Field2 CHAR);
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΠ»Π΅ Fieldl Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π»ΠΈΠ½Ρ 255 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², a Field2 - 1 ΡΠΈΠΌΠ²ΠΎΠ».
Π’ΠΈΠΏΡ CHAR ΠΈ VARCHAR Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΡ ΠΎΠΆΠΈ - ΠΎΠ±Π° ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΠΎ 32768 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ. Π₯ΠΎΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΡΡΠΈ Π΄Π²Π° ΡΠΈΠΏΠ° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½ΠΈΠΌΠΈ InterBase ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ:
SQL> create table testCHAR ( cl char(10), c2 varchar(10));
SQL> insert into testCHAR(cl,c2) values('Test','Test');
SQL> SELECT '{' |cl||')', '('||c2 |')' from testCHAR;
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
(Test ) (Test)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Test', Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Ρ cl, ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΏΠΎΠ»Ρ ΡΠΈΠΏΠ° CHAR Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΠΎΠ»Ρ. Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° (Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠΈ).
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ VARCHAR.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² - CHARACTER SET. ΠΠ°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ²Π½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»Ρ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΡΠ²Π½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠΎΠ»Π±ΡΠ° (Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ CREATE TABLE ΠΈΠ»ΠΈ ALTER TABLE) Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΡΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² WEN1251 (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² InterBase ΡΠΌ. Π³Π»Π°Π²Ρ "Π ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ InterBase" (Ρ. 1)). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΡΠ²Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² WIN1251:
CREATE TABLE TestCHARSET(
Fieldl VARCHAR(255),
Field2 VARCHAR(255) CHARACTER SET winl251);
ΠΠ΄Π΅ΡΡ Fieldl - ΠΏΠΎΠ»Π΅ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΊΠ°Π·Π°Π½ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΠΎΠ»Ρ Field2 ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΡΡΠΎ Π² Π½Π΅ΠΌ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ WIN 1251.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (COLLATION ORDER), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΡΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ - WIN1251 ΠΈ PXW_CYRL. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ COLLATION ORDER ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ "Π ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ InterBase".
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π½ΠΈΡ COLLATION ORDER ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ [1, Π³Π». 13].
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° InterBase 6 ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² 4: ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΅ΡΠ΅ NCHAR ΠΈ NCHAR VARYING, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΠΆΠ΅ Π² ΡΠΎΠΉ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠΈΠΏΠ°ΠΌΠΈ CHAR ΠΈ VARCHAR, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ISO8859_1. To Π΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠΈΠΏΠ° NCHAR ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ CHAR DEFAULT CHARACTER SET ISO8859_1. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈ Π΄Π»Ρ NCHAR VARYING, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ CHAR ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ VARCHAR. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠΈΠΏΠΎΠ² ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΠ°ΠΏΠ°Π΄Π½ΠΎΠΉ ΠΠ²ΡΠΎΠΏΠ΅ ΠΈ Π‘Π¨Π, Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ISO8859_1.
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ BLOB
Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ BLOB ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. Π’ΠΈΠΏ BLOB ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΏΠΎΠ»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ², - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π²ΠΈΠ΄Π΅ΠΎΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΈ Ρ. Π΄.
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΡΠΈΠΏΠ° BLOB Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
CREATE TABLE testBLOB(
myBlobField BLOB);
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΏΠΎΠ»Π΅ myBlobField, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Ρ BLOB ΠΏΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ , ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡ Π²Π½ΡΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ. He-BLOB-ΠΏΠΎΠ»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ (ΡΠΌ. Π³Π»Π°Π²Ρ "Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ InterBase" (Ρ. 4)) ΡΡΠ΄ΠΎΠΌ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, Π° Π² ΡΠ»ΡΡΠ°Π΅ BLOB Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ BLOB, Π° ΡΠ°ΠΌ BLOB ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π£ ΡΠΈΠΏΠ° BLOB ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π°Π±ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ (BLOB filters), Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΠΏΠ°ΠΌΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ² BLOB, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² InterBase. ΠΡΠ΅ ΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΠΏΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ subtype 0 - ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, subtype 1 - ΡΠ΅ΠΊΡΡ, subtype 2 - BLR (Binary Language Representation, ΡΠΌ. Π³Π»ΠΎΡΡΠ°ΡΠΈΠΉ ΠΈ Π³Π»Π°Π²Ρ "Π‘ΡΡΡΠΊΡΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ InterBase") ΠΈ Ρ. Π΄. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ΄ΡΠΈΠΏΡ BLOB, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΠΏ.
ΠΠ°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ BLOB-ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»ΡΠΆΠΈΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ² BLOB, ΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ·ΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π·Π°Π΄Π°Ρ.
ΠΠ°ΡΡΠΈΠ²Ρ
Π‘Π£ΠΠ InterBase Π±ΡΠ»Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ°ΡΡΠΈΠ² - ΡΡΠΎ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΅ ΠΈΠΌΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅ΡΡ. ΠΠ°ΡΡΠΈΠ²Ρ Π² InterBase ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΠ»Π΅ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΡΠ΅Π» INTEGER, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
CREATE TABLE test(
myOneDimArray INTEGER[12],
myTwoDimArray INTEGER[5,4],
myThreeDimArray INTEGER[2,10,8]);
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π΄ΡΡΡΡ 3 ΠΏΠΎΠ»Ρ ΡΠΈΠΏΠ° ΠΌΠ°ΡΡΠΈΠ²: ΠΏΠΎΠ»Π΅ myOneDimArray, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 12 ΡΠΈΡΠ΅Π», myTwoDimArray, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (ΠΌΠ°ΡΡΠΈΡΡ) 5x4 ΡΠΈΡΠ΅Π» Integer, ΠΈ ΠΏΠΎΠ»Π΅ myThreeDimArray - ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² 2x10x8. ΠΠ°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠΌΠ΅ΡΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ, Ρ. Π΅. ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΎΠΌΠ΅Ρ 1, Π²ΡΠΎΡΠΎΠΉ - Π½ΠΎΠΌΠ΅Ρ 2 ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ 0 Π΄ΠΎ 5, ΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΡΠ°ΠΊ:
myArray INTEGER[0:5]
ΠΠ°ΡΡΠΈΠ²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΈΠΏΠ° BLOB, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² "Π·Π°Π³ΡΡΠ·Π½ΠΈΡ" Π²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄Π°Π½Π½ΡΡ : InterBase Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡ .
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ? ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π² 80 % ΡΠ»ΡΡΠ°Π΅Π² Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΡΡ (detail) ΡΠ°Π±Π»ΠΈΡΠ°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π‘Π£ΠΠ InterBase. ΠΡΠΎΠΌΡ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ Ρ Delphi ΠΈ C++Builder Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ BDE ΠΈ ΠΠΠ₯, Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ InterBase ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° gpre, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Delphi/C-H-Builder. Π ΡΡΠ°ΡΡΡΡ, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ FIBPlus ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ-ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² InterBase, ΠΎ ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ "Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ FIBPlus". ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° IBProvider, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ InterBase Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ (ΡΠΌ. Π³Π»Π°Π²Ρ "Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π‘Π£ΠΠ InterBase Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Microsoft OLE DB" (Ρ. 3)).