* ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ (Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅Ρ).
* ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² run-time ΠΈ design- time. Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΡΠ²ΡΡΡ Π½Π΅ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ°ΡΡΠΈΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
* ΠΠΊΠΊΡΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° auto-increment ΠΏΠΎΠ»Π΅ΠΉ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ.
* ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TpFIBErrorHandler.
* Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TpFIBUpdateObject. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π±Π΅Π· ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠΈΡΠ΅ΠΌ, ΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡ TpFIBDataSet ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ . Π£ΠΏΡΠ°Π²Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ TpFIBUpdateObject, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π΅ΠΌΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ TpFEBUpdateObject Π² Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
* ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Services API, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ FffiPlus ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ db-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ TDataSet-TDataSource. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π²ΡΠ±ΡΠ°Π²ΡΠΈΠΉ FffiPlus Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ InterBase, Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π² Π²ΡΠ±ΠΎΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΎΡΡΠ΅ΡΠΎΠ² (ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FffiPlus Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ FastReport).
ΠΠ»Ρ Π»ΡΠ±ΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ FffiPlus. Π 1998 Π³ΠΎΠ΄Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΡΠ΅Π³ΠΎΡΠΈ ΠΠΈΠ»ΡΡ ΡΠΎΠ·Π΄Π°Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ InterBase API, Π½Π°Π·Π²Π°Π² Π΅Π³ΠΎ FreeffiComponents (FffiC). Π£ΠΆΠ΅ Ρ 1999 Π³ΠΎΠ΄Π° ΠΎΠ΄Π΅ΡΡΠΊΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π‘Π΅ΡΠ³Π΅ΠΉ ΠΡΠ·Π°Π΄ΠΆΠΈ ΡΡΠ°Π» Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π½Π°Π·Π²Π°Π² ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ FffiPlus. Π’ΠΎΠ³Π΄Π° ΠΆΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΡ Borland Π²ΡΠΏΡΡΡΠΈΠ»Π° Delphi 5, Π²ΠΊΠ»ΡΡΠΈΠ² Π² Π½Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ InterBase Express (ffiX), ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠΎΠ΄Π΅ FIBC. Π‘Π°ΠΌ ΠΡΠ΅Π³ΠΎΡΠΈ ΠΠΈΠ»ΡΡ ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π ΡΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² FffiC, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π‘Π΅ΡΠ³Π΅Π΅ΠΌ ΠΡΠ·Π°Π΄ΠΆΠΈ, Π±ΡΠ»ΠΈ ΡΡΠΎΠ»Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Ρ ΠΈ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΡΠ΅Π³ΠΎΡΠΈ ΠΠΈΠ»ΡΡΠ°, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ FIBPIus ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΡΠ΅Π³ΠΎΡΠΈ ΠΠΈΠ»ΡΡΠ°. Π‘ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Devrace, Π‘Π΅ΡΠ³Π΅ΠΉ ΠΡΠ·Π°Π΄ΠΆΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΈ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Borland Delphi 3-7, Borland C++ Builder 3-5, Borland Kylix 3 ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Borland InterBase 4-7.0, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Firebird ΠΈ Yaffil.
FIBPIus ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Devrace Π²Π²Π΅Π»Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ Π±ΡΠ²ΡΠ΅Π³ΠΎ Π‘ΠΎΡΠ·Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅Π½Ρ Π΄Π»Ρ "Π·Π°ΠΏΠ°Π΄Π½ΡΡ " ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ FIBPIus Π½Π° ΡΠ°ΠΉΡΠ°Ρ : http://www.devrace.com, http://www.fibplus.net.
ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΎΡΡΠ°Π² FIBPIus
TpFIBDatabase - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±Π°Π·Π΅, ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: Open, Close.
TpFIBTransaction - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: StartTransaction, Commit, Rollback, CommitRetaining, RollbackRbtainine.
TpFIBDataSet - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° TDataSet ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: Prepare, Open, Close, Insert, Append, Edit, Delete, Refresh.
TpFIBQuery - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ TpFIBDataSet , ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ: Prepare, ExecOuery, Close
TpFIBStoredProc - ΠΏΠΎΡΠΎΠΌΠΎΠΊ TpFIBQuery, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ "ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ" Π²ΠΎΠΊΡΡΠ³ ΠΊΠΎΠΌΠ°Π½Π΄Ρ EXECUTE PROCEDURE.
TpFIBUpdateObject - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ TpFIBDataSet.
TDataSetContainer - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ TpFIBDataSet ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠΎΠ΄.
TpFIBSQLMonitor - ΠΏΡΠ΅Π΄Π½Π°Π·Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² FIBPIus. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ· ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ FIBPIus.
TpFIBErrorHandler - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΡΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ InterBase API. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
SuperlBAlerter - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ (event alerters) InterBase.
TIBConfigService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
TIBBackupService ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ (backup) Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
TpFIBRestoreService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
TpFIBValidationService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ .
TpFIB Statistical Service - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
TpFIBLogService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π° ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
TpFIBSecurityService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
TpFIBLicensingService - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ², ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ InterBase.
TpFIBServerProperties - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
TpFIBInstall ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° InterBase installation.
TpFIBUnlnstall - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° InterBase un- installation.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² FIBPIus
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² FIBPIus ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΉΡ-Π»ΠΈΡΡΠ°. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ Ρ FIBPIus, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠΎΠ²Π°ΡΠΎΠ², ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ²Π°ΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΏΡΠ°ΠΉΡ-Π»ΠΈΡΡ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π²Π΅ ΡΠ°Π±Π»ΠΈΡΡ: Π΄Π»Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΈ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠ²Π°ΡΠΎΠ²:
CREATE TABLE "Categories" (
"Id" INTEGER NOT NULL,
"Name" VARCHAR (50) character set WIN1251 collate PXW_CYRL,
"GoodsCount" INTEGER);
/* Unique keys definition */
ALTER TABLE "Categories" ADD CONSTRAINT "PK_Categories" PRIMARY
KEY ("Id");
SET TERM ^ ;
/* Trigger: "AI_Categories_Id" */
CREATE TRIGGER "AI_Categories_Id" FOR "Categories" ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW."Id" IS NULL) THEN
NEW."Id" = GEN_ID("Categories_Id_GEN", 1);
END
^
SET TERM ; ^
CREATE TABLE "Goods" (
"Id" INTEGER NOT NULL,
"Name" VARCHAR (150) character set WIN1251 collate
PXW_CYRL,
"Price" DOUBLE PRECISION,
"IdCategory" INTEGER NOT NULL);
/* Unique keys definition */
ALTER TABLE "Goods" ADD CONSTRAINT "PK_Goods" PRIMARY KEY
("Id");
/* Foreign keys definition */
ALTER TABLE "Goods" ADD CONSTRAINT FK_GOODS FOREIGN KEY
("IdCategory") REFERENCES "Categories" ("Id") ON DELETE CASCADE
ON UPDATE CASCADE;
SET TERM ^ ;
/* Trigger: "AI_Goods_Id" */
CREATE TRIGGER "AI_Goods_Id" FOR "Goods" ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW."Id" IS NULL) THEN
NEW."Id" = GEN_ID("Goods_Id_GEN", 1);
END
^
ΠΡΠ΅Π²ΠΈΠ΄Π½Π° ΡΠ²ΡΠ·Ρ master-detail ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ "Categories" ΠΈ "Goods".
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ SQLDialect 3, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² InterBase Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 6.0
ΠΠ»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΏΡΠ°ΠΉΡ-Π»ΠΈΡΡΠ° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΎΡΡΠ΅ΡΠΎΠ² FastReport f (http://www.fastreport.ru).