ΠΠ½Π΅ Delphi ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ BDECFG.EXE. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TDatabase, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ, Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² IDAPI.CFG.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π² ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅Π°Π½ΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π±Π°Π· Π΄Π°Π½Π½ΡΡ . Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ² Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ IDAPI.CFG Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ:ΠΡΠΈΠΌΠ΅Ρ #1: ΠΡΠΈΠΌΠ΅Ρ #1 ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ STANDARD (.DB, .DBF). ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ TTable.
ΠΡΠΈΠΌΠ΅Ρ #2: ΠΡΠΈΠΌΠ΅Ρ #2 ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ INTERBASE (.gdb). ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ TQuery Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π²ΡΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅Ρ #3: ΠΡΠΈΠΌΠ΅Ρ #3 ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ STANDARD (.DB, .DBF). ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ #1: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .DB ΠΈΠ»ΠΈ .DBF (STANDARD)1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
2. Π Π°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ: β TDatabase, TTable, TDataSource, TDBGrid, and TButton.
3. ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TDatabase ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ (ΠΏΡΠ°Π²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡΡΠΈ) Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
4. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΡ 'MyNewAlias'. ΠΡΠΎ ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ DatabaseName Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° TTable, TQuery, TStoredProc.
5. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π² ΠΏΠΎΠ»Π΅ Driver Name (ΠΈΠΌΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°) ΠΏΡΠ½ΠΊΡ STANDARD.
6. Π©Π΅Π»ΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Defaults. ΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΡΡ (PATH=) Π² ΡΠ΅ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (ΠΎΠΊΠ½ΠΎ Parameter Overrides).
7. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ PATH= to C:\DELPHI\DEMOS\DATA (PATH=C:\DELPHI\DEMOS\DATA).
8. ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ OK ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
9. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TTable ΡΠ²ΠΎΠΉΡΡΠ²Ρ DatabaseName ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'MyNewAlias'.
10. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TDataSource ΡΠ²ΠΎΠΉΡΡΠ²Ρ DataSet ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'Table1'.
11. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ DBGrid ΡΠ²ΠΎΠΉΡΡΠ²Ρ DataSource ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'DataSource1'.
12. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TButton ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick.
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Tablename:= 'CUSTOMER';
Table1.Active:= True;
end;
13. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
*** Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ°Π³Π°ΠΌ 3 β 11, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ°ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ:
procedure TForm1.Button1Click(Sender: TObject);
begin
Database1.DatabaseName:= 'MyNewAlias';
Database1.DriverName:= 'STANDARD';
Database1.Params.Clear;
Database1.Params.Add('PATH=C:\DELPHI\DEMOS\DATA');
Table1.DatabaseName:= 'MyNewAlias';
Table1.TableName:= 'CUSTOMER';
Table1.Active:= True;
DataSource1.DataSet:= Table1;
DBGrid1.DataSource:= DataSource1;
end;
ΠΡΠΈΠΌΠ΅Ρ #2: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ INTERBASE1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
2. Π Π°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ: β TDatabase, TQuery, TDataSource, TDBGrid, and TButton.
3. ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TDatabase ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ (ΠΏΡΠ°Π²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡΡΠΈ) Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
4. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΡ 'MyNewAlias'. ΠΡΠΎ ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ DatabaseName Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° TTable, TQuery, TStoredProc.
5. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π² ΠΏΠΎΠ»Π΅ Driver Name (ΠΈΠΌΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°) ΠΏΡΠ½ΠΊΡ INTRBASE.
6. Π©Π΅Π»ΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Defaults. ΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΡΡ (PATH=) Π² ΡΠ΅ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (ΠΎΠΊΠ½ΠΎ Parameter Overrides).
SERVER NAME=IB_SERVEER:/PATH/DATABASE.GDB
USER NAME=MYNAME
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=NOT SHARED
SCHEMA CACHE TIME=-1
PASSWORD=
7. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
SERVER NAME=C:\IBLOCAL\EXAMPLES\EMPLOYEE.GDB
USER NAME=SYSDBA
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=NOT SHARED
SCHEMA CACHE TIME=-1
PASSWORD=masterkey
8. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TDatabase ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ LoginPrompt ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² 'False'. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Parameter Overrides) Π·Π°Π΄Π°Π½ ΠΏΠ°ΡΠΎΠ»Ρ (ΠΊΠ»ΡΡ PASSWORD) ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ LoginPrompt ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² 'False', ΠΏΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΏΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΡΠΎΠ»Π΅ Π² ΡΠ΅ΠΊΡΠΈΠΈ Parameter Overrides ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π΅ LoginPrompt Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π²Π΅ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ β Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ "ΠΠ²ΠΎΠ΄ ΠΏΠ°ΡΠΎΠ»Ρ" ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ LoginPrompt.
9. ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ OK ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
10. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TQuery ΡΠ²ΠΎΠΉΡΡΠ²Ρ DatabaseName ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'MyNewAlias'.
11. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TDataSource ΡΠ²ΠΎΠΉΡΡΠ²Ρ DataSet ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'Query1'.
12. Π ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ DBGrid ΡΠ²ΠΎΠΉΡΡΠ²Ρ DataSource ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ 'DataSource1'.
13. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ TButton ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick.
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.SQL.Clear;
Query1.SQL.ADD('SELECT DISTINCT * FROM CUSTOMER C, SALES S WHERE (S.CUST_NO = C.CUST_NO) ORDER BY C.CUST_NO, C.CUSTOMER');
Query1.Active:= True;
end;
14. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ #3: ΠΠ²ΠΎΠ΄ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΡΡΡ, ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ .INI ΡΠ°ΠΉΠ»Π°.
1. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ°Π³ΠΈ 1-11 ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° #1.
2. ΠΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° TButton:
procedure TForm1.Button1Click(Sender: TObject);
var
NewString: string;
ClickedOK: Boolean;
begin
NewString:= 'C:\';
ClickedOK:= InputQuery('Database Path', 'Path: β> C:\DELPHI\DEMOS\DATA', NewString);
if ClickedOK then begin
Database1.DatabaseName:= 'MyNewAlias';
Database1.DriverName:= 'STANDARD';
Database1.Params.Clear;
Database1.Params.Add('Path=' + NewString);
Table1.DatabaseName:= 'MyNewAlias';
Table1.TableName:= 'CUSTOMER';
Table1.Active:= True;
DataSource1.DataSet:= Table1;
DBGrid1.DataSource:= DataSource1;
end;
end;
3. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°Ρ BDE
ΠΠ°ΠΊ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ IDAPI ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π·Π½Π°Ρ Π΅Π΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ?
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ GetAliasParams ΠΊΠ»Π°ΡΡΠ° TSession.
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΡΠΊΠΎΠΌΡΠΉ ΠΏΡΡΡ.
Π― ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
uses DbiProcs, DBiTypes;
function GetDataBaseDir(const Alias : string): String;
(* ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ
(Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΡΠ°) *)
var
sp: PChar;
Res: pDBDesc;
begin
try
New(Res);
sp:= StrAlloc(length(Alias)+1);
StrPCopy(sp,Alias);
if DbiGetDatabaseDesc(sp,Res) = 0 then Result:= StrPas(Res^.szPhyName)
else Result:= '';
finally
StrDispose(sp);
Dispose(Res);
end;
end;
ΠΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°
ΠΡΠ΄ΠΈΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΈΡΠΊΠ°
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎΡΡ Π² CD-ROM'Π΅ Π°ΡΠ΄ΠΈΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ°?
const
MCI_INFO_PRODUCT = $00000100;
MCI_INFO_FILE = $00000200;
MCI_INFO_MEDIA_UPC = $00000400;
MCI_INFO_MEDIA_IDENTITY = $00000800;
MCI_INFO_NAME = $00001000;
MCI_INFO_COPYRIGHT = $00002000;
{ Π±Π»ΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ MCI_INFO }
type
PMCI_Info_ParmsA = ^TMCI_Info_ParmsA;
PMCI_Info_ParmsW = ^TMCI_Info_ParmsW;
PMCI_Info_Parms = PMCI_Info_ParmsA;
TMCI_Info_ParmsA = record
dwCallback: DWORD;
lpstrReturn: PAnsiChar;
dwRetSize: DWORD;
end;
TMCI_Info_ParmsW = record
dwCallback: DWORD;
lpstrReturn: PWideChar;
dwRetSize: DWORD;
end;
TMCI_Info_Parms = TMCI_Info_ParmsA;
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ MCI_INFO_MEDIA_IDENTITY Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Ρ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠ΅ (Win32 ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ TMediaPlayer).
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅
CD-ROM
ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄Π° CD-ROM
ΠΡΡΡ Π»ΠΈ Win32 API ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΊΡΡΡΡ ΠΠ Π ΠΠΠΠ Π«Π’Π¬ CD-ROM? Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ Π½Π΅ ΡΡΠ½ΡΡΡΡΡ ΡΡΡΠΊΠ°ΠΌΠΈ ΠΊ Π Π‘, Π° Π½Π°ΠΆΠ°ΡΡ ΠΌΡΡΠΊΠΎΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ TMediaPlayer ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ Ρ ΠΎΡΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·Π²Π»Π΅ΡΡβ¦
ΠΠ»Ρ Π·Π°ΠΊΡΡΡΠΈΡ CD-ROM:
mciSendString('Set cdaudio door open wait', nil, 0, handle);
ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ CD-ROM:
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ MMSystem Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (uses).
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°