home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-17 | 52.7 KB | 1,471 lines |
-
- {*******************************************************}
- { }
- { Borland Delphi Visual Component Library }
- { Core Database }
- { }
- { Copyright (c) 1995,98 Inprise Corporation }
- { }
- {*******************************************************}
-
- unit Db;
-
- {$R-}
-
- interface
-
- uses Windows, SysUtils, Classes, Graphics;
-
- const
-
- { Maximum string field size }
-
- dsMaxStringSize = 8192;
-
- type
-
- { Misc DataSet types }
-
- TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
- dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
- dsInternalCalc);
-
- TDataEvent = (deFieldChange, deRecordChange, deDataSetChange,
- deDataSetScroll, deLayoutChange, deUpdateRecord, deUpdateState,
- deCheckBrowseMode, dePropertyChange, deFieldListChange,
- deFocusControl, deParentScroll);
-
- TUpdateStatus = (usUnmodified, usModified, usInserted, usDeleted);
- TUpdateStatusSet = set of TUpdateStatus;
-
- TUpdateMode = (upWhereAll, upWhereChanged, upWhereKeyOnly);
-
- { Forward declarations }
-
- TField = class;
- TObjectField = class;
- TDataLink = class;
- TDataSource = class;
- TDataSet = class;
- TFieldDefs = class;
- TIndexDefs = class;
-
- { Exception classes }
-
- EDatabaseError = class(Exception);
-
- { TNamedItem }
-
- TNamedItem = class(TCollectionItem)
- protected
- function GetDisplayName: string; override;
- procedure SetDisplayName(const Value: string); override;
- published
- property Name: string;
- end;
-
- { TDefCollection }
-
- TDefUpdateMethod = procedure of object;
-
- TDefCollection = class(TOwnedCollection)
- protected
- procedure DoUpdate(Sender: TObject);
- procedure SetItemName(AItem: TCollectionItem); override;
- procedure Update(AItem: TCollectionItem); override;
- procedure UpdateDefs(AMethod: TDefUpdateMethod);
- property OnUpdate: TNotifyEvent;
- public
- constructor Create(ADataSet: TDataSet; AOwner: TPersistent;
- AClass: TCollectionItemClass);
- function Find(const AName: string): TNamedItem;
- procedure GetItemNames(List: TStrings);
- function IndexOf(const AName: string): Integer;
- property DataSet: TDataSet;
- property Updated: Boolean;
- end;
-
- { TFieldDef }
-
- TFieldClass = class of TField;
-
- TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
- ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
- ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
- ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,
- ftLargeint, ftADT, ftArray, ftReference, ftDataSet);
-
- TFieldAttribute = (faHiddenCol, faReadonly, faRequired, faLink, faUnNamed);
- TFieldAttributes = set of TFieldAttribute;
-
- TFieldDef = class(TNamedItem)
- protected
- procedure DefineProperties(Filer: TFiler); override;
- public
- constructor Create(Owner: TFieldDefs; const Name: string;
- DataType: TFieldType; Size: Word; Required: Boolean; FieldNo: Integer); reintroduce; overload;
- destructor Destroy; override;
- function AddChild: TFieldDef;
- procedure Assign(Source: TPersistent); override;
- function CreateField(Owner: TComponent; ParentField: TObjectField = nil;
- const FieldName: string = ''; CreateChildren: Boolean = True): TField;
- function HasChildDefs: Boolean;
- property FieldClass: TFieldClass;
- property FieldNo: Integer;
- property InternalCalcField: Boolean;
- property ParentDef: TFieldDef;
- property Required: Boolean;
- published
- property Attributes: TFieldAttributes default [];
- property ChildDefs: TFieldDefs;
- property DataType: TFieldType default ftUnknown;
- property Precision: Integer default 0;
- property Size: Word default 0;
- end;
-
- { TFieldDefs }
-
- TFieldDefs = class(TDefCollection)
- protected
- procedure FieldDefUpdate(Sender: TObject);
- procedure ChildDefUpdate(Sender: TObject);
- procedure SetItemName(AItem: TCollectionItem); override;
- public
- constructor Create(AOwner: TPersistent);
- function AddFieldDef: TFieldDef;
- function Find(const Name: string): TFieldDef;
- procedure Update; reintroduce;
- { procedure Add kept for compatability - AddFieldDef is the better way }
- procedure Add(const Name: string; DataType: TFieldType; Size: Word;
- Required: Boolean);
- property HiddenFields: Boolean;
- property Items[Index: Integer]: TFieldDef; default;
- property ParentDef: TFieldDef;
- end;
-
- { TIndexDef }
-
- TIndexOption = (ixPrimary, ixUnique, ixDescending, ixCaseInsensitive,
- ixExpression, ixNonMaintained);
- TIndexOptions = set of TIndexOption;
-
- TIndexDef = class(TNamedItem)
- public
- constructor Create(Owner: TIndexDefs; const Name, Fields: string;
- Options: TIndexOptions); reintroduce; overload;
- procedure Assign(ASource: TPersistent); override;
- property FieldExpression: string;
- published
- property CaseInsFields: string;
- property DescFields: string;
- property Expression: string;
- property Fields: string;
- property Options: TIndexOptions default [];
- property Source: string;
- property GroupingLevel: Integer default 0;
- end;
-
- { TIndexDefs }
-
- TIndexDefs = class(TDefCollection)
- protected
- { TODO: Finish these for design environment use
- function GetAttrCount: Integer; override;
- function GetAttr(Index: Integer): string; override;
- function GetItemAttr(Index, ItemIndex: Integer): string; override; }
- public
- constructor Create(ADataSet: TDataSet);
- function AddIndexDef: TIndexDef;
- function Find(const Name: string): TIndexDef;
- procedure Update; reintroduce;
- function FindIndexForFields(const Fields: string): TIndexDef;
- function GetIndexForFields(const Fields: string;
- CaseInsensitive: Boolean): TIndexDef;
- { procedure Add kept for compatability - AddIndexDef is the better way }
- procedure Add(const Name, Fields: string; Options: TIndexOptions);
- property Items[Index: Integer]: TIndexDef; default;
- end;
-
- { TFlatList }
-
- TFlatList = class(TStringList)
- protected
- procedure ListChanging(Sender: TObject);
- function FindItem(const Name: string; MustExist: Boolean): TObject;
- function GetCount: Integer; override;
- function GetUpdated: Boolean; virtual;
- procedure UpdateList; virtual; abstract;
- property Updated: Boolean;
- property Locked: Boolean;
- public
- constructor Create(ADataSet: TDataSet);
- procedure Update;
- property DataSet: TDataSet;
- end;
-
- { TFieldDefList }
-
- TFieldDefList = class(TFlatList)
- protected
- function GetUpdated: Boolean; override;
- procedure UpdateList; override;
- public
- function FieldByName(const Name: string): TFieldDef;
- function Find(const Name: string): TFieldDef; reintroduce;
- property FieldDefs[Index: Integer]: TFieldDef; default;
- end;
-
- { TFieldList }
-
- TFieldList = class(TFlatList)
- protected
- procedure UpdateList; override;
- public
- function FieldByName(const Name: string): TField;
- function Find(const Name: string): TField; reintroduce;
- property Fields[Index: Integer]: TField; default;
- end;
-
- { TFields }
-
- TFieldKind = (fkData, fkCalculated, fkLookup, fkInternalCalc, fkAggregate);
- TFieldKinds = set of TFieldKind;
-
- TFields = class(TObject)
- protected
- procedure Changed;
- procedure CheckFieldKind(FieldKind: TFieldKind; Field: TField);
- function GetCount: Integer;
- function GetField(Index: Integer): TField;
- procedure SetFieldIndex(Field: TField; Value: Integer);
- property SparseFields: Integer;
- property OnChange: TNotifyEvent;
- property ValidFieldKinds: TFieldKinds;
- public
- constructor Create(ADataSet: TDataSet);
- destructor Destroy; override;
- procedure Add(Field: TField);
- procedure CheckFieldName(const FieldName: string);
- procedure CheckFieldNames(const FieldNames: string);
- procedure Clear;
- function FindField(const FieldName: string): TField;
- function FieldByName(const FieldName: string): TField;
- function FieldByNumber(FieldNo: Integer): TField;
- procedure GetFieldNames(List: TStrings);
- function IndexOf(Field: TField): Integer;
- procedure Remove(Field: TField);
- property Count: Integer;
- property DataSet: TDataSet;
- property Fields[Index: Integer]: TField; default;
- end;
-
- { TField }
-
- TProviderFlag = (pfInUpdate, pfInWhere, pfInKey, pfHidden);
- TProviderFlags = set of TProviderFlag;
-
- TFieldNotifyEvent = procedure(Sender: TField) of object;
- TFieldGetTextEvent = procedure(Sender: TField; var Text: string;
- DisplayText: Boolean) of object;
- TFieldSetTextEvent = procedure(Sender: TField; const Text: string) of object;
- TFieldRef = ^TField;
- TFieldChars = set of Char;
-
- PLookupListEntry = ^TLookupListEntry;
- TLookupListEntry = record
- Key: Variant;
- Value: Variant;
- end;
-
- TLookupList = class(TObject)
- public
- constructor Create;
- destructor Destroy; override;
- procedure Add(const AKey, AValue: Variant);
- procedure Clear;
- function ValueOfKey(const AKey: Variant): Variant;
- end;
-
- TField = class(TComponent)
- protected
- function AccessError(const TypeName: string): EDatabaseError; dynamic;
- procedure Bind(Binding: Boolean); virtual;
- procedure CheckInactive;
- class procedure CheckTypeSize(Value: Integer); virtual;
- procedure Change; virtual;
- procedure DataChanged;
- procedure DefineProperties(Filer: TFiler); override;
- procedure FreeBuffers; virtual;
- function GetAsBoolean: Boolean; virtual;
- function GetAsByteArray: Variant; virtual;
- function GetAsCurrency: Currency; virtual;
- function GetAsDateTime: TDateTime; virtual;
- function GetAsFloat: Double; virtual;
- function GetAsInteger: Longint; virtual;
- function GetAsString: string; virtual;
- function GetAsVariant: Variant; virtual;
- function GetCanModify: Boolean; virtual;
- function GetClassDesc: string;
- function GetDataSize: Word; virtual;
- function GetDefaultWidth: Integer; virtual;
- function GetFieldNo: Integer; virtual;
- function GetHasConstraints: Boolean; virtual;
- function GetIsNull: Boolean; virtual;
- function GetSize: Word; virtual;
- procedure GetText(var Text: string; DisplayText: Boolean); virtual;
- procedure Notification(AComponent: TComponent;
- Operation: TOperation); override;
- procedure PropertyChanged(LayoutAffected: Boolean);
- procedure ReadState(Reader: TReader); override;
- procedure SetAsBoolean(Value: Boolean); virtual;
- procedure SetAsByteArray(const Value: Variant); virtual;
- procedure SetAsCurrency(Value: Currency); virtual;
- procedure SetAsDateTime(Value: TDateTime); virtual;
- procedure SetAsFloat(Value: Double); virtual;
- procedure SetAsInteger(Value: Longint); virtual;
- procedure SetAsString(const Value: string); virtual;
- procedure SetAsVariant(const Value: Variant); virtual;
- procedure SetDataSet(ADataSet: TDataSet); virtual;
- procedure SetDataType(Value: TFieldType);
- procedure SetFieldKind(Value: TFieldKind); virtual;
- procedure SetParentComponent(AParent: TComponent); override;
- procedure SetParentField(AField: TObjectField); virtual;
- procedure SetSize(Value: Word); virtual;
- procedure SetText(const Value: string); virtual;
- procedure SetVarValue(const Value: Variant); virtual;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure Assign(Source: TPersistent); override;
- procedure AssignValue(const Value: TVarRec);
- procedure Clear; virtual;
- procedure FocusControl;
- function GetData(Buffer: Pointer): Boolean;
- function GetParentComponent: TComponent; override;
- function HasParent: Boolean; override;
- class function IsBlob: Boolean; virtual;
- function IsValidChar(InputChar: Char): Boolean; virtual;
- procedure RefreshLookupList;
- procedure SetData(Buffer: Pointer);
- procedure SetFieldType(Value: TFieldType); virtual;
- procedure Validate(Buffer: Pointer);
- property AsBoolean: Boolean;
- property AsCurrency: Currency;
- property AsDateTime: TDateTime;
- property AsFloat: Double;
- property AsInteger: Longint;
- property AsString: string;
- property AsVariant: Variant;
- property AttributeSet: string;
- property Calculated: Boolean default False;
- property CanModify: Boolean;
- property CurValue: Variant;
- property DataSet: TDataSet;
- property DataSize: Word;
- property DataType: TFieldType;
- property DisplayName: string;
- property DisplayText: string;
- property EditMask: string;
- property EditMaskPtr: string;
- property FieldNo: Integer;
- property FullName: string;
- property IsIndexField: Boolean;
- property IsNull: Boolean;
- property Lookup: Boolean;
- property LookupList: TLookupList;
- property NewValue: Variant;
- property Offset: word;
- property OldValue: Variant;
- property ParentField: TObjectField;
- property Size: Word;
- property Text: string;
- property ValidChars: TFieldChars;
- property Value: Variant;
- published
- property Alignment: TAlignment default taLeftJustify;
- property CustomConstraint: string;
- property ConstraintErrorMessage: string;
- property DefaultExpression: string;
- property DisplayLabel: string;
- property DisplayWidth: Integer;
- property FieldKind: TFieldKind default fkData;
- property FieldName: string;
- property HasConstraints: Boolean;
- property Index: Integer;
- property ImportedConstraint: string;
- property LookupDataSet: TDataSet;
- property LookupKeyFields: string;
- property LookupResultField: string;
- property KeyFields: string;
- property LookupCache: Boolean default False;
- property Origin: string;
- property ProviderFlags: TProviderFlags default [pfInWhere, pfInUpdate];
- property ReadOnly: Boolean default False;
- property Required: Boolean default False;
- property Visible: Boolean default True;
- property OnChange: TFieldNotifyEvent;
- property OnGetText: TFieldGetTextEvent;
- property OnSetText: TFieldSetTextEvent;
- property OnValidate: TFieldNotifyEvent;
- end;
-
- { TStringField }
-
- TStringField = class(TField)
- protected
- class procedure CheckTypeSize(Value: Integer); override;
- function GetAsBoolean: Boolean; override;
- function GetAsDateTime: TDateTime; override;
- function GetAsFloat: Double; override;
- function GetAsInteger: Longint; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- function GetDefaultWidth: Integer; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- function GetValue(var Value: string): Boolean;
- procedure SetAsBoolean(Value: Boolean); override;
- procedure SetAsDateTime(Value: TDateTime); override;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsInteger(Value: Longint); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: string;
- property FixedChar: Boolean;
- published
- property EditMask;
- property Size default 20;
- property Transliterate: Boolean default True;
- end;
-
- { TNumericField }
-
- TNumericField = class(TField)
- protected
- procedure RangeError(Value, Min, Max: Extended);
- procedure SetDisplayFormat(const Value: string);
- procedure SetEditFormat(const Value: string);
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Alignment default taRightJustify;
- property DisplayFormat: string;
- property EditFormat: string;
- end;
-
- { TIntegerField }
-
- TIntegerField = class(TNumericField)
- protected
- function GetAsFloat: Double; override;
- function GetAsInteger: Longint; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- function GetValue(var Value: Longint): Boolean;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsInteger(Value: Longint); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: Longint;
- published
- property MaxValue: Longint default 0;
- property MinValue: Longint default 0;
- end;
-
- { TSmallintField }
-
- TSmallintField = class(TIntegerField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TLargeintField }
-
- Largeint = Int64;
-
- TLargeintField = class(TNumericField)
- protected
- function GetAsFloat: Double; override;
- function GetAsInteger: Longint; override;
- function GetAsLargeint: Largeint;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- function GetDefaultWidth: Integer; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- function GetValue(var Value: Largeint): Boolean;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsInteger(Value: Longint); override;
- procedure SetAsLargeint(Value: Largeint);
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property AsLargeInt: LargeInt;
- property Value: Largeint;
- published
- property MaxValue: Largeint default 0;
- property MinValue: Largeint default 0;
- end;
-
- { TWordField }
-
- TWordField = class(TIntegerField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TAutoIncField }
-
- TAutoIncField = class(TIntegerField)
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TFloatField }
-
- TFloatField = class(TNumericField)
- protected
- function GetAsFloat: Double; override;
- function GetAsInteger: Longint; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsInteger(Value: Longint); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: Double;
- published
- { Lowercase to avoid name clash with C++ Currency type }
- property currency: Boolean default False;
- property MaxValue: Double;
- property MinValue: Double;
- property Precision: Integer default 15;
- end;
-
- { TCurrencyField }
-
- TCurrencyField = class(TFloatField)
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Currency default True;
- end;
-
- { TBooleanField }
-
- TBooleanField = class(TField)
- protected
- function GetAsBoolean: Boolean; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- function GetDefaultWidth: Integer; override;
- procedure SetAsBoolean(Value: Boolean); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: Boolean;
- published
- property DisplayValues: string;
- end;
-
- { TDateTimeField }
-
- TDateTimeField = class(TField)
- protected
- function GetAsDateTime: TDateTime; override;
- function GetAsFloat: Double; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- function GetDefaultWidth: Integer; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- procedure SetAsDateTime(Value: TDateTime); override;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: TDateTime;
- published
- property DisplayFormat: string;
- property EditMask;
- end;
-
- { TDateField }
-
- TDateField = class(TDateTimeField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TTimeField }
-
- TTimeField = class(TDateTimeField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TBinaryField }
-
- TBinaryField = class(TField)
- protected
- class procedure CheckTypeSize(Value: Integer); override;
- function GetAsString: string; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- function GetAsVariant: Variant; override;
- procedure SetAsString(const Value: string); override;
- procedure SetText(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Size default 16;
- end;
-
- { TBytesField }
-
- TBytesField = class(TBinaryField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TVarBytesField }
-
- TVarBytesField = class(TBytesField)
- protected
- function GetDataSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TBCDField }
-
- TBCDField = class(TNumericField)
- protected
- class procedure CheckTypeSize(Value: Integer); override;
- function GetAsCurrency: Currency; override;
- function GetAsFloat: Double; override;
- function GetAsInteger: Longint; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- function GetDefaultWidth: Integer; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- function GetValue(var Value: Currency): Boolean;
- procedure SetAsCurrency(Value: Currency); override;
- procedure SetAsFloat(Value: Double); override;
- procedure SetAsInteger(Value: Longint); override;
- procedure SetAsString(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Value: Currency;
- published
- { Lowercase to avoid name clash with C++ Currency type }
- property currency: Boolean default False;
- property MaxValue: Currency;
- property MinValue: Currency;
- property Precision: Integer default 0;
- property Size default 4;
- end;
-
- { TBlobField }
-
- TBlobType = ftBlob..ftTypedBinary;
-
- TBlobField = class(TField)
- protected
- procedure AssignTo(Dest: TPersistent); override;
- procedure FreeBuffers; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- function GetBlobSize: Integer; virtual;
- function GetIsNull: Boolean; override;
- procedure GetText(var Text: string; DisplayText: Boolean); override;
- procedure SetAsString(const Value: string); override;
- procedure SetText(const Value: string); override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- procedure Assign(Source: TPersistent); override;
- procedure Clear; override;
- class function IsBlob: Boolean; override;
- procedure LoadFromFile(const FileName: string);
- procedure LoadFromStream(Stream: TStream);
- procedure SaveToFile(const FileName: string);
- procedure SaveToStream(Stream: TStream);
- procedure SetFieldType(Value: TFieldType); override;
- property BlobSize: Integer;
- property Modified: Boolean;
- property Value: string;
- property Transliterate: Boolean;
- published
- property BlobType: TBlobType;
- property Size default 0;
- end;
-
- { TMemoField }
-
- TMemoField = class(TBlobField)
- public
- constructor Create(AOwner: TComponent); override;
- published
- property Transliterate default True;
- end;
-
- { TGraphicField }
-
- TGraphicField = class(TBlobField)
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TObjectField }
-
- TObjectField = class(TField)
- protected
- class procedure CheckTypeSize(Value: Integer); override;
- procedure DefineProperties(Filer: TFiler); override;
- procedure FreeBuffers; override;
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
- function GetDefaultWidth: Integer; override;
- function GetFieldCount: Integer;
- function GetFields: TFields; virtual;
- function GetFieldValue(Index: Integer): Variant; virtual;
- function GetHasConstraints: Boolean; override;
- procedure SetChildOrder(Component: TComponent; Order: Integer); override;
- procedure SetDataSet(ADataSet: TDataSet); override;
- procedure SetFieldKind(Value: TFieldKind); override;
- procedure SetFieldValue(Index: Integer; const Value: Variant); virtual;
- procedure SetParentField(AField: TObjectField); override;
- procedure SetUnNamed(Value: Boolean);
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- property FieldCount: Integer;
- property Fields: TFields;
- property FieldValues[Index: Integer]: Variant; default;
- property UnNamed: Boolean default False;
- published
- property ObjectType: string;
- end;
-
- { TADTField }
-
- TADTField = class(TObjectField)
- protected
- function GetSize: Word; override;
- public
- constructor Create(AOwner: TComponent); override;
- end;
-
- { TArrayField }
-
- TArrayField = class(TObjectField)
- protected
- procedure Bind(Binding: Boolean); override;
- procedure SetSize(Value: Word); override;
- public
- constructor Create(AOwner: TComponent); override;
- property Size default 10;
- end;
-
- { TDataSetField }
-
- TDataSetField = class(TObjectField)
- protected
- procedure Bind(Binding: Boolean); override;
- function GetFields: TFields; override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- property NestedDataSet: TDataSet;
- published
- property IncludeObjectField: Boolean;
- end;
-
- { TReferenceField }
-
- TReferenceField = class(TDataSetField)
- protected
- function GetAsVariant: Variant; override;
- function GetDataSize: Word; override;
- procedure SetVarValue(const Value: Variant); override;
- public
- constructor Create(AOwner: TComponent); override;
- procedure Assign(Source: TPersistent); override;
- published
- property ReferenceTableName: string;
- property Size default 0;
- end;
-
- { TAggregateField }
-
- TAggregateField = class(TField)
- protected
- function GetAsString: string; override;
- function GetAsVariant: Variant; override;
- public
- constructor Create(AOwner: TComponent); override;
- property Handle: Pointer;
- property ResultType: TFieldType;
- published
- property Active: Boolean default False;
- property DisplayName: String;
- property Expression: String;
- property FieldKind default fkAggregate;
- property GroupingLevel: Integer default 0;
- property IndexName: String;
- property Visible default False;
- end;
-
- { TDataLink }
-
- TDataLink = class(TPersistent)
- protected
- procedure ActiveChanged; virtual;
- procedure CheckBrowseMode; virtual;
- procedure DataEvent(Event: TDataEvent; Info: Longint); virtual;
- procedure DataSetChanged; virtual;
- procedure DataSetScrolled(Distance: Integer); virtual;
- procedure EditingChanged; virtual;
- procedure FocusControl(Field: TFieldRef); virtual;
- function GetActiveRecord: Integer; virtual;
- function GetBOF: Boolean; virtual;
- function GetBufferCount: Integer; virtual;
- function GetEOF: Boolean; virtual;
- function GetRecordCount: Integer; virtual;
- procedure LayoutChanged; virtual;
- function MoveBy(Distance: Integer): Integer; virtual;
- procedure RecordChanged(Field: TField); virtual;
- procedure SetActiveRecord(Value: Integer); virtual;
- procedure SetBufferCount(Value: Integer); virtual;
- procedure UpdateData; virtual;
- property VisualControl: Boolean;
- public
- constructor Create;
- destructor Destroy; override;
- function Edit: Boolean;
- function ExecuteAction(Action: TBasicAction): Boolean; dynamic;
- function UpdateAction(Action: TBasicAction): Boolean; dynamic;
- procedure UpdateRecord;
- property Active: Boolean;
- property ActiveRecord: Integer;
- property BOF: Boolean;
- property BufferCount: Integer;
- property DataSet: TDataSet;
- property DataSource: TDataSource;
- property DataSourceFixed: Boolean;
- property Editing: Boolean;
- property EOF: Boolean;
- property ReadOnly: Boolean;
- property RecordCount: Integer;
- end;
-
- { TDetailDataLink }
-
- TDetailDataLink = class(TDataLink)
- protected
- function GetDetailDataSet: TDataSet; virtual;
- public
- property DetailDataSet: TDataSet;
- end;
-
- { TDataSource }
-
- TDataChangeEvent = procedure(Sender: TObject; Field: TField) of object;
-
- TDataSource = class(TComponent)
- protected
- property DataLinks: TList;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- procedure Edit;
- function IsLinkedTo(DataSet: TDataSet): Boolean;
- property State: TDataSetState;
- published
- property AutoEdit: Boolean default True;
- property DataSet: TDataSet;
- property Enabled: Boolean default True;
- property OnStateChange: TNotifyEvent;
- property OnDataChange: TDataChangeEvent;
- property OnUpdateData: TNotifyEvent;
- end;
-
- { TDataSetDesigner }
-
- TDataSetDesigner = class(TObject)
- public
- constructor Create(DataSet: TDataSet);
- destructor Destroy; override;
- procedure BeginDesign;
- procedure DataEvent(Event: TDataEvent; Info: Longint); virtual;
- procedure EndDesign;
- property DataSet: TDataSet;
- end;
-
- { TCheckConstraint }
-
- TCheckConstraint = class(TCollectionItem)
- public
- procedure Assign(Source: TPersistent); override;
- function GetDisplayName: string; override;
- published
- property CustomConstraint: string;
- property ErrorMessage: string;
- property FromDictionary: Boolean;
- property ImportedConstraint: string;
- end;
-
- { TCheckConstraints }
-
- TCheckConstraints = class(TCollection)
- protected
- function GetOwner: TPersistent; override;
- public
- constructor Create(Owner: TPersistent);
- function Add: TCheckConstraint;
- property Items[Index: Integer]: TCheckConstraint; default;
- end;
-
- { TParam }
-
- TBlobData = string;
-
- TParamType = (ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult);
-
- TParams = class;
-
- TParam = class(TCollectionItem)
- protected
- procedure AssignParam(Param: TParam);
- procedure AssignTo(Dest: TPersistent); override;
- function GetAsBCD: Currency;
- function GetAsBoolean: Boolean;
- function GetAsDateTime: TDateTime;
- function GetAsCurrency: Currency;
- function GetAsFloat: Double;
- function GetAsInteger: Longint;
- function GetAsMemo: string;
- function GetAsString: string;
- function GetAsVariant: Variant;
- function GetIsNull: Boolean;
- function IsEqual(Value: TParam): Boolean;
- procedure SetAsBCD(const Value: Currency);
- procedure SetAsBlob(const Value: TBlobData);
- procedure SetAsBoolean(Value: Boolean);
- procedure SetAsCurrency(const Value: Currency);
- procedure SetAsDate(const Value: TDateTime);
- procedure SetAsDateTime(const Value: TDateTime);
- procedure SetAsFloat(const Value: Double);
- procedure SetAsInteger(Value: Longint);
- procedure SetAsMemo(const Value: string);
- procedure SetAsString(const Value: string);
- procedure SetAsSmallInt(Value: LongInt);
- procedure SetAsTime(const Value: TDateTime);
- procedure SetAsVariant(const Value: Variant);
- procedure SetAsWord(Value: LongInt);
- procedure SetDataType(Value: TFieldType);
- procedure SetText(const Value: string);
- function GetDisplayName: string; override;
- property DataSet: TDataSet;
- public
- constructor Create(Collection: TCollection); overload; override;
- constructor Create(AParams: TParams; AParamType: TParamType); reintroduce; overload;
- procedure Assign(Source: TPersistent); override;
- procedure AssignField(Field: TField);
- procedure AssignFieldValue(Field: TField; const Value: Variant);
- procedure Clear;
- procedure GetData(Buffer: Pointer);
- function GetDataSize: Integer;
- procedure LoadFromFile(const FileName: string; BlobType: TBlobType);
- procedure LoadFromStream(Stream: TStream; BlobType: TBlobType);
- procedure SetBlobData(Buffer: Pointer; Size: Integer);
- procedure SetData(Buffer: Pointer);
- property AsBCD: Currency;
- property AsBlob: TBlobData;
- property AsBoolean: Boolean;
- property AsCurrency: Currency;
- property AsDate: TDateTime;
- property AsDateTime: TDateTime;
- property AsFloat: Double;
- property AsInteger: LongInt;
- property AsSmallInt: LongInt;
- property AsMemo: string;
- property AsString: string;
- property AsTime: TDateTime;
- property AsWord: LongInt;
- property Bound: Boolean;
- property IsNull: Boolean;
- property Text: string;
- published
- property DataType: TFieldType;
- property Name: string;
- property ParamType: TParamType;
- property Value: Variant;
- end;
-
- { TParams }
-
- TParams = class(TCollection)
- protected
- procedure AssignTo(Dest: TPersistent); override;
- procedure DefineProperties(Filer: TFiler); override;
- function GetDataSet: TDataSet;
- function GetOwner: TPersistent; override;
- procedure Update(Item: TCollectionItem); override;
- public
- constructor Create(Owner: TPersistent); overload;
- procedure AssignValues(Value: TParams);
- { Create, AddParam, RemoveParam and CreateParam are in for backward compatibility }
- constructor Create; overload;
- procedure AddParam(Value: TParam);
- procedure RemoveParam(Value: TParam);
- function CreateParam(FldType: TFieldType; const ParamName: string;
- ParamType: TParamType): TParam;
- procedure GetParamList(List: TList; const ParamNames: string);
- function IsEqual(Value: TParams): Boolean;
- function ParseSQL(SQL: String; DoCreate: Boolean): String;
- function ParamByName(const Value: string): TParam;
- function FindParam(const Value: string): TParam;
- property Items[Index: Integer]: TParam; default;
- property ParamValues[const ParamName: string]: Variant;
- end;
-
- { TDataSet }
-
- TBookmark = Pointer;
- TBookmarkStr = string;
-
- PBookmarkFlag = ^TBookmarkFlag;
- TBookmarkFlag = (bfCurrent, bfBOF, bfEOF, bfInserted);
-
- TBufferList = array of PChar;
-
- TGetMode = (gmCurrent, gmNext, gmPrior);
-
- TGetResult = (grOK, grBOF, grEOF, grError);
-
- TResyncMode = set of (rmExact, rmCenter);
-
- TDataAction = (daFail, daAbort, daRetry);
-
- TUpdateKind = (ukModify, ukInsert, ukDelete);
-
- TBlobStreamMode = (bmRead, bmWrite, bmReadWrite);
-
- TLocateOption = (loCaseInsensitive, loPartialKey);
- TLocateOptions = set of TLocateOption;
-
- TDataOperation = procedure of object;
-
- TDataSetNotifyEvent = procedure(DataSet: TDataSet) of object;
- TDataSetErrorEvent = procedure(DataSet: TDataSet; E: EDatabaseError;
- var Action: TDataAction) of object;
-
- TFilterOption = (foCaseInsensitive, foNoPartialCompare);
- TFilterOptions = set of TFilterOption;
-
- TFilterRecordEvent = procedure(DataSet: TDataSet;
- var Accept: Boolean) of object;
-
- PPacketAttribute = ^TPacketAttribute;
- TPacketAttribute = record
- Name: string;
- Value: OleVariant;
- IncludeInDelta: Boolean;
- end;
-
- TBlobByteData = array of Byte;
-
- TGroupPosInd = (gbFirst, gbMiddle, gbLast);
- TGroupPosInds = set of TGroupPosInd;
-
- TDataSet = class(TComponent)
- procedure BeginInsertAppend;
- procedure CheckCanModify;
- procedure CheckOperation(Operation: TDataOperation;
- ErrorEvent: TDataSetErrorEvent);
- procedure CheckParentState;
- procedure CheckRequiredFields;
- procedure DoInternalOpen;
- procedure DoInternalClose;
- procedure EndInsertAppend;
- function GetActive: Boolean;
- function GetBuffer(Index: Integer): PChar;
- function GetFieldCount: Integer;
- function GetFieldValue(const FieldName: string): Variant;
- function GetFound: Boolean;
- function GetNestedDataSets: TList;
- procedure MoveBuffer(CurIndex, NewIndex: Integer);
- procedure RemoveDataSource(DataSource: TDataSource);
- procedure SetBufferCount(Value: Integer);
- procedure SetConstraints(Value: TCheckConstraints);
- procedure SetFieldDefs(Value: TFieldDefs);
- procedure SetFieldValue(const FieldName: string; const Value: Variant);
- procedure SetSparseArrays(Value: Boolean);
- procedure UpdateBufferCount;
- protected
- procedure ResetAggField(Field: TField); virtual;
- procedure BindFields(Binding: Boolean);
- function BookmarkAvailable: Boolean;
- function BCDToCurr(BCD: Pointer; var Curr: Currency): Boolean; virtual;
- function CurrToBCD(const Curr: Currency; BCD: Pointer; Precision,
- Decimals: Integer): Boolean; virtual;
- procedure CalculateFields(Buffer: PChar); virtual;
- procedure CheckActive; virtual;
- procedure CheckInactive; virtual;
- procedure ClearBuffers; virtual;
- procedure ClearCalcFields(Buffer: PChar); virtual;
- procedure CloseBlob(Field: TField); virtual;
- procedure CloseCursor; virtual;
- procedure CreateFields;
- function CreateNestedDataSet(DataSetField: TDataSetField): TDataSet; virtual;
- procedure DataEvent(Event: TDataEvent; Info: Longint); virtual;
- procedure DefChanged(Sender: TObject); virtual;
- procedure DestroyFields; virtual;
- procedure DoAfterCancel; virtual;
- procedure DoAfterClose; virtual;
- procedure DoAfterDelete; virtual;
- procedure DoAfterEdit; virtual;
- procedure DoAfterInsert; virtual;
- procedure DoAfterOpen; virtual;
- procedure DoAfterPost; virtual;
- procedure DoAfterScroll; virtual;
- procedure DoBeforeCancel; virtual;
- procedure DoBeforeClose; virtual;
- procedure DoBeforeDelete; virtual;
- procedure DoBeforeEdit; virtual;
- procedure DoBeforeInsert; virtual;
- procedure DoBeforeOpen; virtual;
- procedure DoBeforePost; virtual;
- procedure DoBeforeScroll; virtual;
- procedure DoOnCalcFields; virtual;
- procedure DoOnNewRecord; virtual;
- function FieldByNumber(FieldNo: Integer): TField;
- function FindRecord(Restart, GoForward: Boolean): Boolean; virtual;
- procedure FreeFieldBuffers; virtual;
- function GetAggregateValue(Field: TField): Variant; virtual;
- function GetAggRecordCount(Grp: TGroupPosInd): Integer; virtual;
- procedure ActivateBuffers; virtual;
- function GetBookmarkStr: TBookmarkStr; virtual;
- procedure GetCalcFields(Buffer: PChar); virtual;
- function GetCanModify: Boolean; virtual;
- procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
- function GetDataSource: TDataSource; virtual;
- function GetFieldClass(FieldType: TFieldType): TFieldClass; virtual;
- function GetFieldFullName(Field: TField): string; virtual;
- function GetStateFieldValue(State: TDataSetState; Field: TField): Variant; virtual;
- function GetIsIndexField(Field: TField): Boolean; virtual;
- function GetNextRecords: Integer; virtual;
- function GetNextRecord: Boolean; virtual;
- function GetPriorRecords: Integer; virtual;
- function GetPriorRecord: Boolean; virtual;
- function GetRecordCount: Integer; virtual;
- function GetRecNo: Integer; virtual;
- procedure InitFieldDefs; virtual;
- procedure InitFieldDefsFromFields;
- procedure InitRecord(Buffer: PChar); virtual;
- procedure InternalCancel; virtual;
- procedure InternalEdit; virtual;
- procedure InternalInsert; virtual;
- procedure InternalRefresh; virtual;
- procedure Loaded; override;
- procedure OpenCursor(InfoQuery: Boolean); virtual;
- procedure RefreshInternalCalcFields(Buffer: PChar); virtual;
- procedure RestoreState(const Value: TDataSetState);
- procedure BlockReadNext; virtual;
- procedure SetActive(Value: Boolean); virtual;
- procedure SetBookmarkStr(const Value: TBookmarkStr); virtual;
- procedure SetBlockReadSize(Value: Integer); virtual;
- procedure SetBufListSize(Value: Integer);
- procedure SetChildOrder(Component: TComponent; Order: Integer); override;
- procedure SetCurrentRecord(Index: Integer); virtual;
- procedure SetDataSetField(const Value: TDataSetField); virtual;
- procedure SetFiltered(Value: Boolean); virtual;
- procedure SetFilterOptions(Value: TFilterOptions); virtual;
- procedure SetFilterText(const Value: string); virtual;
- procedure SetFound(const Value: Boolean);
- procedure SetModified(Value: Boolean);
- procedure SetName(const Value: TComponentName); override;
- procedure SetObjectView(const Value: Boolean);
- procedure SetOnFilterRecord(const Value: TFilterRecordEvent); virtual;
- procedure SetRecNo(Value: Integer); virtual;
- procedure SetState(Value: TDataSetState);
- procedure SetStateFieldValue(State: TDataSetState; Field: TField; const Value: Variant); virtual;
- function SetTempState(const Value: TDataSetState): TDataSetState;
- function TempBuffer: PChar;
- procedure UpdateIndexDefs; virtual;
- property ActiveRecord: Integer;
- property CurrentRecord: Integer;
- property BlobFieldCount: Integer;
- property BookmarkSize: Integer;
- property Buffers[Index: Integer]: PChar;
- property BufferCount: Integer;
- property CalcBuffer: PChar;
- property CalcFieldsSize: Integer;
- property Constraints: TCheckConstraints;
- property FieldNoOfs: Integer;
- property InternalCalcFields: Boolean;
- property NestedDataSets: TList;
- property NestedDataSetClass: TClass;
- property Reserved: Pointer;
- protected { abstract methods }
- function AllocRecordBuffer: PChar; virtual; abstract;
- procedure FreeRecordBuffer(var Buffer: PChar); virtual; abstract;
- procedure GetBookmarkData(Buffer: PChar; Data: Pointer); virtual; abstract;
- function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; virtual; abstract;
- function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; virtual; abstract;
- function GetRecordSize: Word; virtual; abstract;
- procedure InternalAddRecord(Buffer: Pointer; Append: Boolean); virtual; abstract;
- procedure InternalClose; virtual; abstract;
- procedure InternalDelete; virtual; abstract;
- procedure InternalFirst; virtual; abstract;
- procedure InternalGotoBookmark(Bookmark: Pointer); virtual; abstract;
- procedure InternalHandleException; virtual; abstract;
- procedure InternalInitFieldDefs; virtual; abstract;
- procedure InternalInitRecord(Buffer: PChar); virtual; abstract;
- procedure InternalLast; virtual; abstract;
- procedure InternalOpen; virtual; abstract;
- procedure InternalPost; virtual; abstract;
- procedure InternalSetToRecord(Buffer: PChar); virtual; abstract;
- function IsCursorOpen: Boolean; virtual; abstract;
- procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); virtual; abstract;
- procedure SetBookmarkData(Buffer: PChar; Data: Pointer); virtual; abstract;
- procedure SetFieldData(Field: TField; Buffer: Pointer); virtual; abstract;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- function ActiveBuffer: PChar;
- procedure Append;
- procedure AppendRecord(const Values: array of const);
- function BookmarkValid(Bookmark: TBookmark): Boolean; virtual;
- procedure Cancel; virtual;
- procedure CheckBrowseMode;
- procedure ClearFields;
- procedure Close;
- function ControlsDisabled: Boolean;
- function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer; virtual;
- function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; virtual;
- procedure CursorPosChanged;
- procedure Delete;
- procedure DisableControls;
- procedure Edit;
- procedure EnableControls;
- function FieldByName(const FieldName: string): TField;
- function FindField(const FieldName: string): TField;
- function FindFirst: Boolean;
- function FindLast: Boolean;
- function FindNext: Boolean;
- function FindPrior: Boolean;
- procedure First;
- procedure FreeBookmark(Bookmark: TBookmark); virtual;
- function GetBookmark: TBookmark; virtual;
- function GetCurrentRecord(Buffer: PChar): Boolean; virtual;
- procedure GetDetailDataSets(List: TList);
- procedure GetDetailLinkFields(MasterFields, DetailFields: TList); virtual;
- function GetBlobFieldData(FieldNo: Integer; var Buffer: TBlobByteData): Integer; virtual;
- function GetFieldData(Field: TField; Buffer: Pointer): Boolean; overload; virtual;
- function GetFieldData(FieldNo: Integer; Buffer: Pointer): Boolean; overload; virtual;
- procedure GetFieldList(List: TList; const FieldNames: string);
- procedure GetFieldNames(List: TStrings);
- procedure GetProviderAttributes(List: TList); virtual;
- procedure GotoBookmark(Bookmark: TBookmark);
- procedure Insert;
- procedure InsertRecord(const Values: array of const);
- function IsEmpty: Boolean;
- function IsLinkedTo(DataSource: TDataSource): Boolean;
- function IsSequenced: Boolean; virtual;
- procedure Last;
- function Locate(const KeyFields: string; const KeyValues: Variant;
- Options: TLocateOptions): Boolean; virtual;
- function Lookup(const KeyFields: string; const KeyValues: Variant;
- const ResultFields: string): Variant; virtual;
- function MoveBy(Distance: Integer): Integer;
- procedure Next;
- procedure Open;
- procedure Post; virtual;
- procedure Prior;
- procedure Refresh;
- procedure Resync(Mode: TResyncMode); virtual;
- procedure SetFields(const Values: array of const);
- function Translate(Src, Dest: PChar; ToOem: Boolean): Integer; virtual;
- procedure UpdateCursorPos;
- procedure UpdateRecord;
- function UpdateStatus: TUpdateStatus; virtual;
- property AggFields: TFields;
- property Bof: Boolean;
- property Bookmark: TBookmarkStr;
- property CanModify: Boolean;
- property DataSetField: TDataSetField;
- property DataSource: TDataSource;
- property DefaultFields: Boolean;
- property Designer: TDataSetDesigner;
- property Eof: Boolean; {Upper case EOF conflicts with C++}
- property BlockReadSize: Integer;
- property FieldCount: Integer;
- property FieldDefs: TFieldDefs;
- property FieldDefList: TFieldDefList;
- property Fields: TFields;
- property FieldList: TFieldList;
- property FieldValues[const FieldName: string]: Variant; default;
- property Found: Boolean;
- property Modified: Boolean;
- property ObjectView: Boolean;
- property RecordCount: Integer;
- property RecNo: Integer;
- property RecordSize: Word;
- property SparseArrays: Boolean;
- property State: TDataSetState;
- property Filter: string;
- property Filtered: Boolean default False;
- property FilterOptions: TFilterOptions default [];
- property Active: Boolean default False;
- property AutoCalcFields: Boolean default True;
- property BeforeOpen: TDataSetNotifyEvent;
- property AfterOpen: TDataSetNotifyEvent;
- property BeforeClose: TDataSetNotifyEvent;
- property AfterClose: TDataSetNotifyEvent;
- property BeforeInsert: TDataSetNotifyEvent;
- property AfterInsert: TDataSetNotifyEvent;
- property BeforeEdit: TDataSetNotifyEvent;
- property AfterEdit: TDataSetNotifyEvent;
- property BeforePost: TDataSetNotifyEvent;
- property AfterPost: TDataSetNotifyEvent;
- property BeforeCancel: TDataSetNotifyEvent;
- property AfterCancel: TDataSetNotifyEvent;
- property BeforeDelete: TDataSetNotifyEvent;
- property AfterDelete: TDataSetNotifyEvent;
- property BeforeScroll: TDataSetNotifyEvent;
- property AfterScroll: TDataSetNotifyEvent;
- property OnCalcFields: TDataSetNotifyEvent;
- property OnDeleteError: TDataSetErrorEvent;
- property OnEditError: TDataSetErrorEvent;
- property OnFilterRecord: TFilterRecordEvent;
- property OnNewRecord: TDataSetNotifyEvent;
- property OnPostError: TDataSetErrorEvent;
- end;
-
- { TDateTimeRec }
-
- type
- TDateTimeAlias = type TDateTime;
- {$NODEFINE TDateTimeAlias}
- (*$HPPEMIT 'namespace Db'*)
- (*$HPPEMIT '{'*)
- (*$HPPEMIT ' typedef TDateTimeBase TDateTimeAlias;'*)
- (*$HPPEMIT '}'*)
- TDateTimeRec = record
- case TFieldType of
- ftDate: (Date: Longint);
- ftTime: (Time: Longint);
- ftDateTime: (DateTime: TDateTimeAlias);
- end;
-
- const
- { The following field types do not support assignment as text, unless the
- field object's OnSetText event is assigned to perform the text to
- binary conversion. }
- ftNonTextTypes = [ftBytes, ftVarBytes, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
- ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftADT, ftArray,
- ftReference, ftDataSet];
-
- dsEditModes = [dsEdit, dsInsert, dsSetKey];
- dsWriteModes = [dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter,
- dsNewValue, dsInternalCalc];
-
- DefaultFieldClasses: array[TFieldType] of TFieldClass = (
- nil, { ftUnknown }
- TStringField, { ftString }
- TSmallintField, { ftSmallint }
- TIntegerField, { ftInteger }
- TWordField, { ftWord }
- TBooleanField, { ftBoolean }
- TFloatField, { ftFloat }
- TCurrencyField, { ftCurrency }
- TBCDField, { ftBCD }
- TDateField, { ftDate }
- TTimeField, { ftTime }
- TDateTimeField, { ftDateTime }
- TBytesField, { ftBytes }
- TVarBytesField, { ftVarBytes }
- TAutoIncField, { ftAutoInc }
- TBlobField, { ftBlob }
- TMemoField, { ftMemo }
- TGraphicField, { ftGraphic }
- TBlobField, { ftFmtMemo }
- TBlobField, { ftParadoxOle }
- TBlobField, { ftDBaseOle }
- TBlobField, { ftTypedBinary }
- nil, { ftCursor }
- TStringField, { ftFixedChar }
- nil, {TWideStringField } { ftWideString }
- TLargeIntField, { ftLargeInt }
- TADTField, { ftADT }
- TArrayField, { ftArray }
- TReferenceField, { ftReference }
- TDataSetField); { ftDataSet }
-
- FieldTypeNames: array[TFieldType] of string = (
- 'Unknown', 'String', 'SmallInt', 'Integer', 'Word', 'Boolean', 'Float',
- 'Currency', 'BCD', 'Date', 'Time', 'DateTime', 'Bytes', 'VarBytes',
- 'AutoInc', 'Blob', 'Memo', 'Graphic', 'FmtMemo', 'ParadoxOle',
- 'dBaseOle', 'TypedBinary', 'Cursor', 'FixedChar', 'WideString',
- 'LargeInt', 'ADT', 'Array', 'Reference', 'DataSet');
-
- FieldTypeVarMap: array[TFieldType] of Word = (
- varEmpty, varString, varInteger, varInteger, varInteger,
- varBoolean, varDouble, varCurrency, varCurrency, varDate, varDate, varDate,
- varEmpty, varEmpty, varInteger, varEmpty, varString, varEmpty,
- varEmpty, varEmpty, varEmpty, varEmpty, varEmpty, varString, varOleStr,
- varEmpty, varEmpty, varEmpty, varEmpty, varEmpty);
-
- ObjectFieldTypes = [ftADT, ftArray, ftReference, ftDataSet];
-
- function ExtractFieldName(const Fields: string; var Pos: Integer): string;
- procedure RegisterFields(const FieldClasses: array of TFieldClass);
-
- procedure DatabaseError(const Message: string; Component: TComponent = nil);
- procedure DatabaseErrorFmt(const Message: string; const Args: array of const;
- Component: TComponent = nil);
- procedure DBError(Ident: Word);
- procedure DBErrorFmt(Ident: Word; const Args: array of const);
-
- procedure DisposeMem(var Buffer; Size: Integer);
- function BuffersEqual(Buf1, Buf2: Pointer; Size: Integer): Boolean;
-
- function GetFieldProperty(DataSet: TDataSet; Control: TComponent;
- const FieldName: string): TField;
-
- const
- RegisterFieldsProc: procedure(const FieldClassess: array of TFieldClass) = nil;
-
- implementation
-