📄 ezibgis.pas
字号:
End;
Function TEzIBTable.FieldGet( Const FieldName: String ): String;
Begin
OpenIBSQL( Format( 'SELECT %s FROM %s WHERE uid = %d', [FieldName, Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[0].AsTrimString;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.FieldGetN( FieldNo: integer ): String;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[FieldNo-1].AsTrimString;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.FieldLen( FieldNo: integer ): integer;
Begin
Result:=0;
End;
Function TEzIBTable.FieldNo( Const FieldName: String ): integer;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.FieldIndex[ FieldName ] + 1;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.TheTableName: string;
begin
Result:= 'ENT_' + FLayer.Name;
end;
Function TEzIBTable.FieldType( FieldNo: integer ): char;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [ Self.TheTableName, FCurrRecno] ) );
case Dataset.Fields[ FieldNo-1 ].SQLType of
SQL_TEXT, SQL_VARYING:
Result:= 'C';
SQL_DOUBLE, SQL_FLOAT, SQL_D_FLOAT:
Result:= 'N';
SQL_LONG, SQL_SHORT, SQL_INT64:
Result:= 'N';
SQL_TIMESTAMP, SQL_TYPE_TIME, SQL_TYPE_DATE:
Result:= 'D';
SQL_BLOB: Result:= 'B';
end;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.Find( Const ss: String; IsExact, IsNear: boolean ): boolean;
Begin
Result:=false;
End;
Function TEzIBTable.FloatGet( Const Fieldname: String ): Double;
Begin
OpenIBSQL( Format( 'SELECT %s FROM %s WHERE uid = %d', [FieldName, Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[0].AsDouble;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.FloatGetN( FieldNo: Integer ): Double;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[FieldNo-1].AsDouble;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.IndexCount: integer;
Begin
result := 0; // inexact
End;
Function TEzIBTable.IndexAscending( Value: integer ): boolean;
Begin
Result := true; // default e inexact
End;
Function TEzIBTable.Index( Const INames, Tag: String ): integer;
Begin
// nothing to do here
End;
Function TEzIBTable.IndexCurrent: String;
Begin
result := '';
End;
Function TEzIBTable.IndexUnique( Value: integer ): boolean;
Begin
Result := true;
End;
Function TEzIBTable.IndexExpression( Value: integer ): String;
Begin
result := '';
End;
Function TEzIBTable.IndexTagName( Value: integer ): String;
Begin
result := '';
End;
Function TEzIBTable.IndexFilter( Value: integer ): String;
Begin
result := '';
End;
Function TEzIBTable.IntegerGet( Const FieldName: String ): Integer;
Begin
OpenIBSQL( Format( 'SELECT %s FROM %s WHERE uid = %d', [FieldName, Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[0].AsInteger;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.IntegerGetN( FieldNo: integer ): Integer;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[FieldNo-1].AsInteger;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.LogicGet( Const FieldName: String ): Boolean;
Begin
OpenIBSQL( Format( 'SELECT %s FROM %s WHERE uid = %d', [FieldName, Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[0].AsString = 'Y';
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.LogicGetN( FieldNo: integer ): Boolean;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[FieldNo-1].AsString = 'Y';
IBCommitTrans( Dataset );
Dataset.Close;
End;
procedure TEzIBTable.MemoSave( Const FieldName: String; stream: tstream );
Begin
// don't save with this
End;
Procedure TEzIBTable.MemoSaveN( FieldNo: integer; stream: tstream );
Begin
// don't save with this
End;
Function TEzIBTable.MemoSize( Const FieldName: String ): Integer;
Begin
// don't use this
End;
Function TEzIBTable.MemoSizeN( FieldNo: integer ): Integer;
Begin
// don't use this
End;
Function TEzIBTable.RecordCount: Integer;
Begin
result := FLayer.GetRecordCount;
End;
Function TEzIBTable.StringGet( Const FieldName: String ): String;
Begin
OpenIBSQL( Format( 'SELECT %s FROM %s WHERE uid = %d', [FieldName, Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[0].AsString;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Function TEzIBTable.StringGetN( FieldNo: integer ): String;
Begin
OpenIBSQL( Format( 'SELECT * FROM %s WHERE uid = %d', [Self.TheTableName, FCurrRecno] ) );
result := Dataset.Fields[FieldNo-1].AsString;
IBCommitTrans( Dataset );
Dataset.Close;
End;
Procedure TEzIBTable.DatePut( Const FieldName: String; value: TDateTime );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, FieldName, FormatDateTime( 'm/d/yyyy', Value ), FCurrRecno] ) );
End;
Procedure TEzIBTable.DatePutN( FieldNo: integer; value: TDateTime );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, Self.Field(FieldNo), FormatDateTime( 'm/d/yyyy', Value ), FCurrRecno] ) );
End;
Procedure TEzIBTable.Delete;
Begin
// nothing to do here
End;
Procedure TEzIBTable.Edit;
Begin
// don't use this
End;
Procedure TEzIBTable.FieldPut( Const FieldName, Value: String );
var
Code: Integer;
ValFloat: Double;
Begin
case FieldType( FieldNo(FieldName) ) Of
'C': StringPut( FieldName,Value);
'N':
Begin
Val( Trim(Value), ValFloat, Code);
If Code = 0 then
FloatPut( FieldName,ValFloat )
else
FloatPut( FieldName, 0 );
End;
'D': DatePut( FieldName,StrToDate(Trim(Value)));
'B': ;
end;
End;
Procedure TEzIBTable.FieldPutN( FieldNo: integer; Const Value: String );
var
Code: Integer;
ValFloat: Double;
Begin
case FieldType( FieldNo ) Of
'C': StringPutN( FieldNo,Value);
'N':
Begin
Val( Trim(Value), ValFloat, Code);
If Code = 0 then
FloatPutN( FieldNo,ValFloat )
else
FloatPutN( FieldNo, 0 );
End;
'D': DatePutN( FieldNo,StrToDate(Trim(Value)));
'B': ;
end;
End;
Procedure TEzIBTable.First;
Begin
// don't use this
End;
Procedure TEzIBTable.FloatPut( Const FieldName: String; Const Value: Double );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = %.6f WHERE uid = %d', [Self.TheTableName, FieldName, Value, FCurrRecno] ) );
End;
Procedure TEzIBTable.FloatPutN( FieldNo: integer; Const Value: Double );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = %.6f WHERE uid = %d', [Self.TheTableName, Self.Field(FieldNo), Value, FCurrRecno] ) );
End;
Procedure TEzIBTable.FlushDB;
Begin
// nothing to do here
End;
Procedure TEzIBTable.Go( n: Integer );
Begin
FCurrRecno:= n ;
End;
Procedure TEzIBTable.IndexOn( Const IName, tag, keyexp, forexp: String;
uniq: TEzIndexUnique; ascnd: TEzSortStatus );
Begin
// nothing to do here
End;
Procedure TEzIBTable.IntegerPut( Const Fieldname: String; Value: Integer );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = %d WHERE uid = %d', [Self.TheTableName, FieldName, Value, FCurrRecno] ) );
End;
Procedure TEzIBTable.IntegerPutN( FieldNo: integer; Value: Integer );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = %d WHERE uid = %d', [Self.TheTableName, Self.Field(FieldNo), Value, FCurrRecno] ) );
End;
Procedure TEzIBTable.Last;
Begin
// don't use this
End;
Procedure TEzIBTable.LogicPut( Const fieldname: String; value: boolean );
var
yn: string;
Begin
if value then yn:= 'Y' else yn:= 'N';
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, fieldname, yn, FCurrRecno] ) );
End;
Procedure TEzIBTable.LogicPutN( fieldno: integer; value: boolean );
var
yn: string;
Begin
if value then yn:= 'Y' else yn:= 'N';
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, Self.field(fieldno), yn, FCurrRecno] ) );
End;
Procedure TEzIBTable.MemoLoad( Const fieldname: String; stream: tstream );
Begin
// don't use this
End;
Procedure TEzIBTable.MemoLoadN( fieldno: integer; stream: tstream );
Begin
// don't use this
End;
Procedure TEzIBTable.Next;
Begin
// don't use this
End;
Procedure TEzIBTable.Pack;
Begin
// nothing to do here
End;
Procedure TEzIBTable.Post;
Begin
// don't use this
End;
Procedure TEzIBTable.Prior;
Begin
// don't use this
End;
Procedure TEzIBTable.Recall;
Begin
// don't use this
End;
Procedure TEzIBTable.Refresh;
Begin
// don't use this
End;
Procedure TEzIBTable.Reindex;
Begin
// don't use this
End;
Procedure TEzIBTable.SetTagTo( Const TName: String );
Begin
// don't use this
End;
Procedure TEzIBTable.SetUseDeleted( tf: boolean );
Begin
// don't use this
End;
Procedure TEzIBTable.StringPut( Const fieldname, value: String );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, fieldname, value, FCurrRecno] ) );
End;
Procedure TEzIBTable.StringPutN( fieldno: integer; Const value: String );
Begin
ExecuteIBSQL( Format( 'UPDATE %s SET %s = ''%s'' WHERE uid = %d', [Self.TheTableName, Self.field(fieldno), value, FCurrRecno] ) );
End;
Procedure TEzIBTable.Zap;
Begin
// don't use this
End;
function TEzIBTable.DBTableExists( const TableName: string ): Boolean;
begin
result:= true;
end;
Procedure TEzIBTable.BeginTrans;
begin
// don't use this
end;
Procedure TEzIBTable.EndTrans;
begin
// don't use this
end;
Procedure TEzIBTable.RollbackTrans;
begin
// don't use this
end;
{$IFDEF BCB}
function TEzIBTable.GetLayer: TEzIBLayer;
begin
Result := FLayer;
end;
procedure TEzIBTable.SetLayer(const Value: TEzIBLayer);
begin
FLayer := Value;
end;
{$ENDIF}
{-------------------------------------------------------------------------------}
{ TEzIBLayerInfo - class implementation }
{-------------------------------------------------------------------------------}
Constructor TEzIBLayerInfo.Create( Layer: TEzBaseLayer );
Begin
Inherited Create( Layer );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -