📄 ezaccess2000.pas
字号:
ftWidestring{$ENDIF}
{$IFDEF LEVEL5}, ftGUID{$ENDIF}:
Result := 0;
ftBCD:
Result := FADOTable.Fields[FieldNo - 1].Size;
ftFloat, ftCurrency,
ftAutoInc, ftSmallInt, ftInteger, ftWord
{$IFNDEF LEVEL3}, ftLargeInt{$ENDIF}:
Result := 0;
ftDate, ftTime, ftDateTime:
Result := 0;
ftBoolean:
Result := 0;
End;
End;
Function TEzADOXTable.FieldGet( Const FieldName: String ): String;
Begin
result := FADOTable.FieldByName( FieldName ).AsString;
End;
Function TEzADOXTable.FieldGetN( FieldNo: integer ): String;
Begin
result := FADOTable.Fields[FieldNo - 1].AsString;
End;
Function TEzADOXTable.FieldLen( FieldNo: integer ): integer;
Var
Datatype: TFieldType;
Begin
Datatype := FADOTable.Fields[FieldNo - 1].Datatype;
If Datatype In ftNonTexttypes Then
Result := 0
Else
Case Datatype Of
ftstring{$IFDEF LEVEL4}, ftFixedChar,
ftWidestring{$ENDIF}
{$IFDEF LEVEL5}, ftGUID{$ENDIF}:
Result := FADOTable.Fields[FieldNo - 1].Size;
ftFloat, ftCurrency, ftBCD,
ftAutoInc, ftSmallInt, ftInteger, ftWord
{$IFNDEF LEVEL3}, ftLargeInt{$ENDIF}:
Result := 20;
ftDate, ftTime, ftDateTime:
Result := 0;
ftBoolean:
Result := 0;
End;
End;
Function TEzADOXTable.FieldNo( Const FieldName: String ): integer;
Var
Field: TField;
Begin
Field := FADOTable.FindField( FieldName );
If Field = Nil Then
Result := 0
Else
Result := Field.Index + 1;
End;
Function TEzADOXTable.FieldType( FieldNo: integer ): char;
Var
Datatype: TFieldType;
Begin
Datatype := FADOTable.Fields[FieldNo - 1].Datatype;
If Datatype In ftNonTexttypes Then
Begin
Case DataType Of
ftMemo, ftFmtMemo: Result := 'M';
ftGraphic: Result := 'G';
ftTypedBinary: Result := 'B';
End;
End
Else
Case Datatype Of
ftstring{$IFDEF LEVEL4}, ftFixedChar,
ftWidestring{$ENDIF}
{$IFDEF LEVEL5}, ftGUID{$ENDIF}:
Result := 'C';
ftFloat, ftCurrency, ftBCD,
ftAutoInc, ftSmallInt, ftInteger, ftWord
{$IFNDEF LEVEL3}, ftLargeInt{$ENDIF}:
Result := 'N';
ftDate, ftTime, ftDateTime:
Result := 'D';
ftBoolean:
Result := 'L';
End;
End;
Function TEzADOXTable.Find( Const ss: String; IsExact, IsNear: boolean ): boolean;
Begin
// you must use locate instead
End;
Function TEzADOXTable.FloatGet( Const Fieldname: String ): Double;
Begin
result := FADOTable.FieldByName( FieldName ).Asfloat;
End;
Function TEzADOXTable.FloatGetN( FieldNo: Integer ): Double;
Begin
result := FADOTable.Fields[FieldNo - 1].Asfloat;
End;
Function TEzADOXTable.IndexCount: integer;
Begin
result := FADOTable.IndexDefs.Count;
End;
Function TEzADOXTable.IndexAscending( Value: integer ): boolean;
Begin
Result := Not ( ixDescending In FADOTable.IndexDefs[Value].Options );
End;
Function TEzADOXTable.Index( Const INames, Tag: String ): integer;
Begin
// nothing to do here
End;
Function TEzADOXTable.IndexCurrent: String;
Begin
result := FADOTable.IndexName;
End;
Function TEzADOXTable.IndexUnique( Value: integer ): boolean;
Begin
Result := ixUnique In FADOTable.IndexDefs[Value].Options;
End;
Function TEzADOXTable.IndexExpression( Value: integer ): String;
Begin
result := FADOTable.IndexDefs[Value].FieldExpression;
End;
Function TEzADOXTable.IndexTagName( Value: integer ): String;
Begin
result := FADOTable.IndexDefs[Value].Name;
End;
Function TEzADOXTable.IndexFilter( Value: integer ): String;
Begin
result := '';
End;
Function TEzADOXTable.IntegerGet( Const FieldName: String ): Integer;
Begin
result := FADOTable.FieldByName( Fieldname ).AsInteger;
End;
Function TEzADOXTable.IntegerGetN( FieldNo: integer ): Integer;
Begin
result := FADOTable.Fields[FieldNo - 1].AsInteger;
End;
Function TEzADOXTable.LogicGet( Const FieldName: String ): Boolean;
Begin
result := FADOTable.FieldByName( FieldName ).AsBoolean;
End;
Function TEzADOXTable.LogicGetN( FieldNo: integer ): Boolean;
Begin
result := FADOTable.Fields[FieldNo - 1].AsBoolean;
End;
Procedure TEzADOXTable.MemoSave( Const FieldName: String; Stream: Classes.TStream );
Begin
MemoSaveN( FADOTable.FieldByname( FieldName ).Index + 1, Stream );
End;
Procedure TEzADOXTable.MemoSaveN( FieldNo: integer; Stream: Classes.TStream );
Begin
stream.Position:= 0;
( FADOTable.Fields[FieldNo - 1] As TBlobField ).LoadFromStream( stream );
End;
Function TEzADOXTable.MemoSize( Const FieldName: String ): Integer;
Begin
result := ( FADOTable.FieldByName( FieldName ) As TBlobField ).BlobSize;
End;
Function TEzADOXTable.MemoSizeN( FieldNo: integer ): Integer;
Begin
result := ( FADOTable.Fields[FieldNo - 1] As TBlobField ).BlobSize;
End;
Function TEzADOXTable.RecordCount: Integer;
Begin
result := FADOTable.RecordCount;
End;
Function TEzADOXTable.StringGet( Const FieldName: String ): String;
Begin
result := FADOTable.FieldByname( FieldName ).AsString;
End;
Function TEzADOXTable.StringGetN( FieldNo: integer ): String;
Begin
result := FADOTable.Fields[FieldNo - 1].AsString;
End;
{Procedure TEzADOXTable.CopyStructure( Const FileName, APassword: String );
Begin
// nothing to do
End;
Procedure TEzADOXTable.CopyTo( Const FileName, APassword: String );
Begin
// nothing to do
End; }
Procedure TEzADOXTable.DatePut( Const FieldName: String; value: TDateTime );
Begin
FADOTable.FieldByName( FieldName ).AsDateTime := value;
End;
Procedure TEzADOXTable.DatePutN( FieldNo: integer; value: TDateTime );
Begin
FADOTable.Fields[FieldNo - 1].AsDateTime := value;
End;
Procedure TEzADOXTable.Delete;
Begin
// only mark as deleted
FADOTable.Edit;
FADOTable.FieldByName( 'DELETED' ).AsBoolean := True;
FADOTable.Post;
End;
Procedure TEzADOXTable.Edit;
Begin
FADOTable.Edit;
End;
Procedure TEzADOXTable.FieldPut( Const FieldName, Value: String );
Begin
FADOTable.FieldByName( FieldName ).AsString := Value;
End;
Procedure TEzADOXTable.FieldPutN( FieldNo: integer; Const Value: String );
Begin
FADOTable.Fields[Fieldno - 1].Asstring := value;
End;
Procedure TEzADOXTable.First;
Begin
FADOTable.First;
End;
Procedure TEzADOXTable.FloatPut( Const FieldName: String; Const Value: Double );
Begin
FADOTable.Fieldbyname( Fieldname ).AsFloat := value;
End;
Procedure TEzADOXTable.FloatPutN( FieldNo: integer; Const Value: Double );
Begin
FADOTable.Fields[FieldNo - 1].AsFloat := value;
End;
Procedure TEzADOXTable.FlushDB;
Begin
FADOTable.UpdateBatch;
End;
Procedure TEzADOXTable.Go( n: Integer );
Begin
FADOTable.IndexName := '';
If Not FADOTable.Locate('UID', n, [] ) Then
EzGisError( 'Record not found !' );
End;
Procedure TEzADOXTable.IndexOn( Const IName, tag, keyexp, forexp: String;
uniq: TEzIndexUnique; ascnd: TEzSortStatus );
Begin
// indexed must be with MS Access
End;
Procedure TEzADOXTable.IntegerPut( Const Fieldname: String; Value: Integer );
Begin
FADOTable.FieldByname( Fieldname ).Asinteger := value;
End;
Procedure TEzADOXTable.IntegerPutN( FieldNo: integer; Value: Integer );
Begin
FADOTable.Fields[Fieldno - 1].AsInteger := value;
End;
Procedure TEzADOXTable.Last;
Begin
FADOTable.Last;
End;
Procedure TEzADOXTable.LogicPut( Const fieldname: String; value: boolean );
Begin
FADOTable.FieldByname( Fieldname ).asboolean := value;
End;
Procedure TEzADOXTable.LogicPutN( fieldno: integer; value: boolean );
Begin
FADOTable.fields[fieldno - 1].asboolean := value;
End;
Procedure TEzADOXTable.MemoLoad( Const fieldname: String; Stream: Classes.TStream );
Var
field: TField;
Begin
field := FADOTable.FindField( Fieldname );
If field = Nil Then Exit;
MemoLoadN( field.index + 1, Stream );
End;
Procedure TEzADOXTable.MemoLoadN( fieldno: integer; Stream: Classes.TStream );
Begin
( FADOTable.Fields[fieldno - 1] As TBlobfield ).SaveToStream( stream );
stream.seek( 0, 0 );
End;
Procedure TEzADOXTable.Next;
Begin
FADOTable.Next;
End;
Procedure TEzADOXTable.Pack;
Begin
FADOTable.First;
While Not FADOTable.Eof Do
Begin
If FADOTable.FieldByName( 'DELETED' ).AsBoolean Then
FADOTable.Delete
Else
FADOTable.Next;
End;
End;
Procedure TEzADOXTable.Post;
Begin
FADOTable.Post;
End;
Procedure TEzADOXTable.Prior;
Begin
FADOTable.Prior;
End;
Procedure TEzADOXTable.Recall;
Begin
If FADOTable.FieldByname( 'DELETED' ).AsBoolean Then
Begin
FADOTable.Edit;
FADOTable.FieldByname( 'DELETED' ).AsBoolean := False;
FADOTable.Post;
End;
End;
Procedure TEzADOXTable.Refresh;
Begin
FADOTable.Refresh;
End;
Procedure TEzADOXTable.Reindex;
Begin
// nothing to do
End;
Procedure TEzADOXTable.SetTagTo( Const TName: String );
Begin
FADOTable.IndexName := TName;
End;
Procedure TEzADOXTable.SetUseDeleted( tf: boolean );
Begin
// nothing to do
End;
Procedure TEzADOXTable.StringPut( Const fieldname, value: String );
Begin
FADOTable.FieldByname( fieldname ).Asstring := value;
End;
Procedure TEzADOXTable.StringPutN( fieldno: integer; Const value: String );
Begin
FADOTable.Fields[Fieldno - 1].Asstring := value;
End;
Procedure TEzADOXTable.Zap;
Begin
FADOTable.DeleteRecords( arAll );
End;
//initialization
//EzBaseGis.BaseTableClass := TEzADOXTable;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -