home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Borland Delphi Visual Component Library }
- { }
- { Copyright (c) 1995,99 Inprise Corporation }
- { }
- {*******************************************************}
-
- unit DRIntf;
-
- interface
-
- uses
- SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
- Dialogs, BDE, Db, DBTables;
-
- type
- TID = packed record Reserved: array[1..6] of Byte; end;
- TDatabaseID = type TID;
- TTableID = type TID;
- TFieldID = type TID;
- TAttrID = type TID;
-
- const
- NullID: TID = ();
- NullAttrID: TAttrID = ();
- NullDatabaseID: TDatabaseID = ();
- NullTableID: TTableID = ();
- NullFieldID: TFieldID = ();
-
- function DictionaryActive: Boolean;
-
- procedure DictionaryDeactivate;
-
- function CurrentDictionary: HDBIDR;
-
- { IsIDNull - Returns true if the given ID is a null ID }
- function IsNullID(const ID): Boolean;
-
- { FindDatabaseID - Finds the ID for the given database. Returns NullDatabaseID
- the given database is not in the dictionary. }
- function FindDatabaseID(const Database: string): TDatabaseID;
-
- { FindTableID - Finds the ID for the given table in the given database .
- Returns NullTableID the given table is not in the dictionary. }
- function FindTableID(const Database: TDatabaseID; const Table: string): TTableID;
-
- { FindFieldID - Find the ID for the given field in the given table.
- Returns NullFieldID if the field is not in the dictionary }
- function FindFieldID(const Table: TTableID; const Field: string): TFieldID;
-
- { FindAttrID - Finds the attribute set with the name EFAName. Returns 0
- if no attributes set by that name is found }
- function FindAttrID(const AttrName: string): TAttrID;
-
- { GetAttrName - Returns the name of the attribute set AttrID }
- function GetAttrName(const AttrID: TAttrID): string;
-
- { GetAttrNames - Calls Proc with the name of each attribute set in the
- dictionary }
- procedure GetAttrNames(Proc: TGetStrProc);
-
- { GetAttrID - Returns the ID of the attribute set associated with the given
- field. Returns null if the FieldID is null or is not valid, or if no
- attribute set is associated with the field. }
- function GetAttrID(const FieldID: TFieldID): TAttrID;
-
- { NewAttr - Creates a new attribute set from the given field component and
- returns AttrID. The new attribute set will inherit values from the
- given Parent set, only differences between the sets are recorded. If
- Parent is a null string the attribute set is a root attribute set
- and all the values in Field are recorded. If FieldID is not 0 then
- the new attribute set is associated with the field. }
- function NewAttr(Field: TField; const FieldID: TFieldID; const AttrName: string;
- const Parent: TAttrID): TAttrID;
-
- { UpdateAttr - Updates the AttrID attribute set. If field is in the
- Field dictionary then it the FieldID for the field should be supplied
- since the attributes sets shouldn't store information that is the
- matches the attributes field derived from the physical database.
- If FieldID is supplied AttrID can be 0 which will update the attribute
- set associated with the FieldID }
- procedure UpdateAttr(Field: TField; const FieldID: TFieldID;
- const AttrID: TAttrID);
-
- { CreateField - Creates a new field object from the information stored in
- the field dictionary. The new field is created owned by Owner and
- belonging to Dataset. The type and properties of the field are derived from
- the field dictionary information. Both FieldID and AttrID can be 0.
- If FieldID is not 0 and AttrID is, the attribute set associated with FieldID
- is used. The Origin is the value of the Origin property for the new TField.
- This can also be left blank ('') }
- function CreateField(Owner: TComponent; Dataset: TDataset; const FullName,
- Origin: string; const FieldID: TFieldID; const AttrID: TAttrID): TField;
-
- { UpdateField - Changes the properties of the given field to match the
- attributes given field attribute set }
- procedure UpdateField(Field: TField; const FieldID: TFieldID;
- const AttrID: TAttrID);
-
- { AssociateAttr - Associates the given AttrID with the given FieldID }
- procedure AssociateAttr(const AttrID: TAttrID; const FieldID: TFieldID);
-
- { UnassociateAttr - Removes the attribute set association for FieldID }
- procedure UnassociateAttr(const FieldID: TFieldID);
-
- { GetControlClass - Returns the control class to create or '' if no control
- class was specified }
- function GetControlClass(const AttrID: TAttrID): string;
-
- { Returns a fully (user name) qualified table name if the database's tables are
- stored in the dictionary qualified by user name }
- function QualifyTableName(Database: TDatabase; const TableName: string): string;
-
- { Equivelent to QualifyTableName but first looks up the database by name
- after finding the corresponding session. }
- function QualifyTableNameByName(const SessionName, DatabaseName, TableName: string): string;
-
- { Returns whether the dataset has constraints recorded in the dictionary }
- function HasConstraints(Dataset: TDBDataset): Boolean;
-
- { Will remove constraints marked FromDictionary and replace them with the
- constraints recorded in the dictionary }
- procedure UpdateConstraints(Dataset: TDBDataset; Constraints: TCheckConstraints);
-
- { UpdateDataset updates the given dataset to the current settings and
- constraints in the dataset. For a TTable it will update the fields associated
- with that table and all of the constraints for that table. For a query or
- stored procedure, it will use the AttributeSet property of the TField's to
- determine which attribute set to update the field with. It will also parse
- the query to for the associated tables and update the field record constraints
- from the included tables. This is progromatically equivilent to using
- "Retrieve attributes" for all of the fields in the fields editor followed by
- "Read From Dictionary" in the Constraint's property editor. }
- procedure UpdateDataset(Dataset: TDBDataset);
-
- implementation
-