ΠΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Generate SQL, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ flnsertSQL, ModifySQL, DeleteSQL ΠΈ RefreshSQL.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π» Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΠ΅ IBX ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TIBDataSet Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: "Π ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π² IBDataSet? ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠ΄ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ IBSQL, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ INSERT, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π³ΠΎ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΡΡΡ IBDataSet? ΠΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π² IBSQL ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² IBDataSet? Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² IBDataSet?"
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ "ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅" ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π½ΡΠ°Π·ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΈΡΡΠΎΡΠΈΠΌΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡΠΈ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ "ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ" ΠΏΡΠΎΠΈΡΡΠ΅ΠΊΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ IBDataSet. ΠΠΎΠ²Π΅ΡΡΡΠ΅, Π²ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅.
Π ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ Π³Π»Π°Π²Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ TIBDataSet ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ ΠΊΠ»Π°ΡΡΠΎΠΌ TDataSet, Π° Π·Π½Π°ΡΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ. Π£ TIBDataSet ΠΊΠ°ΠΊ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ° TDataSet ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ : Delete, Insert (Append) ΠΈ Edit.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π² Π½Π°Ρ IBDataSetl ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
procedure TForml.ButtonlClick(Sender: TObject);
begin
with IBDataSetl do begin
Insert;
FieldByName('EMP_NO').Aslnteger := 147;
FieldByName('DEPT_NO').Aslnteger := 600;
FieldByName('JOB_CODE').AsString := 'VP';
FieldByName('JOB_GRADE') .Aslnteger : = 2 ;
FieldByName('SALARY').Aslnteger := 105900;
FieldByName('HIRE_DATE').AsDateTime := Now;
FieldByName('JOB_COUNTRY').AsString := 'USA';
FieldByName('FIRST_NAME').AsString := 'ΠΠ²Π°Π½';
FieldByName('LAST_NAME').AsString := 'ΠΠ²Π°Π½ΠΎΠ²';
Post;
end;
end;
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΠ½ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Insert, IBDataSetl ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΡΡΡΠΎΠΉ Π±ΡΡΠ΅Ρ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ (ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ) Π·Π°ΠΏΠΈΡΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° FieldByName ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ (ΡΠΎΡΠ½Π΅Π΅, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ) ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° Post. Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ IBDataSetl Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ, ΠΏΡΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ InsertSQL, ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ.
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ IBDataSetl Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ RefreshSQL Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ - Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ΅:
procedure TForml.ButtonlClick(Sender: TObject);
begin
with IBDataSetl do begin
First;
while not Eof do begin
Edit;
FieldByName('LAST_NAME').AsString :=
trim(FieldByName('LAST_NAME').AsString) + ', esquire;
Post;
Next ;
end;
end;
end;
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ, ΡΡΠΎ ΠΈ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Edit, ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Ρ Π±ΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ FieldByName, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ Post. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ IBDataSetl ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² ModifySQL ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ.
ΠΠ³ΠΎΠ²ΠΎΡΠΈΠΌΡΡ, ΡΡΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΡΠ°Π·Π΄ΠΎ Π»Π΅Π³ΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ UPDATE, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π±Ρ ΡΡΡΠΎΠΊΡ ', esquire' ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅ Π΄Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Edit.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΡΠ΅, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½ΡΠΆΠ΄Ρ Π½ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΡΠΈΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ "ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡΡ ", Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² IBDataSet ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ.
Π ΡΠ½ΠΎΠ²Π° ΠΏΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΠΎΠ²ΠΈΡΠΊΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠ³Π°Π΅Ρ "ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ" IBX Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ "ΠΎΡΠΊΠ°ΡΠ΅" ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π Π°Π·ΠΌΠ΅ΡΡΠΈΠΌ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 2.10: Button 1 (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Caption ΡΠ°Π²Π½ΠΎ Commit) ΠΈ Button2 (Rollback).
Π ΠΈΡ 2.10. ΠΠ½ΠΎΠΏΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
procedure TForml.ButtonlClick(Sender: TObject);
begin
IBTransactionl.Commit;
end;
procedure TForml.Button2Click(Sender: TObject);
begin
IBTransactionl.Rollback;
end;
Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ Π»ΡΠ±ΡΡ ΠΈΠ· ΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π°Ρ Π·Π°ΠΏΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π»ΡΠ±ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΆΠ΅ Π·Π°ΠΊΡΡΡΠ°, ΡΠΎ Π·Π°ΠΏΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ BDE, ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π΅ΠΏΡΠΈΠ²ΡΡΠ½ΠΎ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΅ΡΠ²ΡΠΉ: Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΠ΅ΠΊΡΡΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π° "ΡΡΠ°ΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ". ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΡΡΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π² BDE. ΠΡΠΎΡΠΎΠΉ - ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ CommitRetaining ΠΈ RollbackRetaining, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π² InterBase 5.x. ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΠ΅Π»ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Commit ΠΈ Rollback, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΠΎΡΠΊΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CommitRetaining ΠΈ RollbackRetaining ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΌΠ°ΡΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΡΡΠΈΡ Π²Π°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π·Ρ Π½Π΅ Π±ΡΠΎΡΠ°Π΅ΡΡΡ Π² Π³Π»Π°Π·Π°. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΈ Π²ΡΠ·Π²Π°Π»ΠΈ RollbackRetaining. ΠΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ TIBDataSet ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TDBGrid Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ RollbackRetaining.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΡΡΠΎΠ³Π°ΡΠ½ΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ. Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π·Π°Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»Π΅, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ², Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΌΡ ΠΆΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π² InterBase. ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, Π² InterBase ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ - Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ.
Π IBDataSet ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ GeneratorField. Π£ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π² design-time (ΡΠΈΡ. 2.11).
Π ΠΈΡ 2.11. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΠΈΠΌΡ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΡΠ°Π³ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° (Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ 1), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ: ΡΡΠ°Π·Ρ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ (On New Record), ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ (On Post) ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ° (On Server). Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ Π²Π΅ΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΠ΅ ΠΏΠΎΠ»Π΅ EMP_NO Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡ Π½Π΅Π·Π°Π΄Π°Π½Π½ΡΠΌ (NULL). ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ GeneratorField, ΡΠΎ DBDataSetl Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΎΡ Π½Π°Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ EMP_NO Π² ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ "ΠΏΠ΅ΡΠ΅Π»ΠΎΠΆΠΈΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ" Π½Π° ΡΡΠΈΠ³Π³Π΅Ρ.
Π£ΠΊΠ°Π·Π°Π² ΠΆΠ΅ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΈΠ³Π³Π΅ΡΠ΅, ΠΌΡ ΠΎΠ±ΠΎΠΉΠ΄Π΅ΠΌ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΈ On New Record ΠΈΠ»ΠΈ On Post, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² ΠΎΠ±ΡΡΡ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ IBX.
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎ IBDataSetl ΡΡΠΌΠ΅Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ RefreshSQL. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠΈΠ³Π³Π΅Ρ, ΡΠΎ IBDataSetl Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² RefreshSQL, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ WHERE Π΅ΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Ρ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ master-detail
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠ°ΡΡΠ΅Ρ-Π΄Π΅ΡΠ°Π»Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° Π½Π°ΡΡ ΡΠΎΡΠΌΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (ΡΠΈΡ. 2.12).
IBDataSet2: TIBDataSet;
DataSource2: TdataSource;
DBGrid2: TDBGrid;
Π ΠΈΡ 2.12. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ²ΡΠ·ΠΈ ΠΌΠ°ΡΡΠ΅Ρ-Π΄Π΅ΡΠ°Π»Ρ
Π‘Π²ΡΠΆΠ΅ΠΌ DataSource2 Ρ IBDataSet2, a DBGrid2 Ρ DataSource2. Π£ΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ IBDataSet2:
SelectSQL:
SELECT BUDGET, DEPARTMENT, DEPT_NO, HEAD_DEPT, LOCATION,
MNGR_NO, PHONE_NO
FROM DEPARTMENT
InsertSQL:
INSERT INTO DEPARTMENT
(BUDGET, DEPARTMENT, DEPT_NO, HEAD_DEPT, LOCATION, MNGR_NO,
PHONE_NO)
VALUES
(:BUDGET, :DEPARTMENT, :DEPT_NO, :HEAD_DEPT, :LOCATION,