mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 12:11:27 +02:00
190 lines
3.6 KiB
PHP
190 lines
3.6 KiB
PHP
{
|
|
$Id$
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
|
|
Free Pascal development team
|
|
|
|
TDatabase and related objects implementation
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
{ ---------------------------------------------------------------------
|
|
TDatabase
|
|
---------------------------------------------------------------------}
|
|
|
|
Procedure TDatabase.CheckConnected;
|
|
|
|
begin
|
|
If Not Connected Then
|
|
DatabaseError(SNotConnected,Self);
|
|
end;
|
|
|
|
|
|
Procedure TDatabase.CheckDisConnected;
|
|
begin
|
|
If Connected Then
|
|
DatabaseError(SConnected,Self);
|
|
end;
|
|
|
|
procedure TDataBase.Loaded;
|
|
|
|
begin
|
|
//!! To be implemented.
|
|
end;
|
|
|
|
procedure TDataBase.SetConnected (Value : boolean);
|
|
|
|
begin
|
|
If Value<>FConnected then
|
|
begin
|
|
If Value then
|
|
DoInternalConnect
|
|
else
|
|
begin
|
|
Closedatasets;
|
|
DoInternalDisConnect;
|
|
end;
|
|
FConnected:=Value;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TDatabase.Notification(AComponent: TComponent; Operation: TOperation);
|
|
|
|
begin
|
|
//!! To be implemented.
|
|
end;
|
|
|
|
constructor TDatabase.Create(AOwner: TComponent);
|
|
|
|
begin
|
|
Inherited Create(AOwner);
|
|
end;
|
|
|
|
destructor TDatabase.Destroy;
|
|
|
|
begin
|
|
Connected:=False;
|
|
RemoveDatasets;
|
|
FDatasets.Free;
|
|
Inherited Destroy;
|
|
end;
|
|
|
|
procedure TDatabase.Close;
|
|
|
|
begin
|
|
Connected:=False;
|
|
end;
|
|
|
|
procedure TDatabase.CloseDataSets;
|
|
|
|
Var I : longint;
|
|
|
|
begin
|
|
If Assigned(FDatasets) then
|
|
begin
|
|
For I:=FDatasets.Count-1 downto 0 do
|
|
TDBDataset(FDatasets[i]).Close;
|
|
end;
|
|
end;
|
|
|
|
procedure TDatabase.RemoveDataSets;
|
|
|
|
Var I : longint;
|
|
|
|
begin
|
|
If Assigned(FDatasets) then
|
|
For I:=FDataSets.Count-1 downto 0 do
|
|
TDBDataset(FDataSets[i]).Database:=Nil;
|
|
end;
|
|
|
|
procedure TDatabase.Open;
|
|
|
|
begin
|
|
Connected:=True;
|
|
end;
|
|
|
|
|
|
Function TDatabase.GetDataSetCount : Longint;
|
|
|
|
begin
|
|
If Assigned(FDatasets) Then
|
|
Result:=FDatasets.Count
|
|
else
|
|
Result:=0;
|
|
end;
|
|
|
|
|
|
Function TDatabase.GetDataset(Index : longint) : TDBDataset;
|
|
|
|
begin
|
|
If Assigned(FDatasets) then
|
|
Result:=TDBDataset(FDatasets[Index])
|
|
else
|
|
DatabaseError(SNoDatasets);
|
|
end;
|
|
|
|
procedure TDatabase.RegisterDataset (DS : TDBDataset);
|
|
|
|
Var I : longint;
|
|
|
|
begin
|
|
I:=FDatasets.IndexOf(DS);
|
|
If I=-1 then
|
|
FDatasets.Add(DS)
|
|
else
|
|
DatabaseErrorFmt(SDatasetRegistered,[DS.Name]);
|
|
end;
|
|
|
|
procedure TDatabase.UnRegisterDataset (DS : TDBDataset);
|
|
|
|
Var I : longint;
|
|
|
|
begin
|
|
I:=FDatasets.IndexOf(DS);
|
|
If I<>-1 then
|
|
FDatasets.Delete(I)
|
|
else
|
|
DatabaseErrorFmt(SNoDatasetRegistered,[DS.Name]);
|
|
end;
|
|
|
|
{ ---------------------------------------------------------------------
|
|
TDBdataset
|
|
---------------------------------------------------------------------}
|
|
|
|
Procedure TDBDataset.SetDatabase (Value : TDatabase);
|
|
|
|
begin
|
|
CheckInactive;
|
|
If Value<>FDatabase then
|
|
begin
|
|
If Assigned(FDatabase) then
|
|
FDatabase.UnregisterDataset(Self);
|
|
If Value<>Nil Then
|
|
Value.RegisterDataset(Self);
|
|
FDatabase:=Value;
|
|
end;
|
|
end;
|
|
|
|
{
|
|
$Log$
|
|
Revision 1.5 2000-01-07 01:24:32 peter
|
|
* updated copyright to 2000
|
|
|
|
Revision 1.4 2000/01/06 01:20:32 peter
|
|
* moved out of packages/ back to topdir
|
|
|
|
Revision 1.1 2000/01/03 19:33:05 peter
|
|
* moved to packages dir
|
|
|
|
Revision 1.2 1999/10/24 17:07:54 michael
|
|
+ Added copyright header
|
|
|
|
} |