 
=============
08.2000
 FIBPlus    .
 1.FIBPlus?.dpk             
 2.FIBPlusEditors?.dpk      -

    .

=============
08.2000
1.      :
   FIBDataSet.BeforeFetchRecord,AfterFetchRecord

      :
  TOnFetchRecord  =procedure (FromQuery: TFIBQuery;RecordNumber:integer;
   var StopFetching:boolean
  ) of object;

      ,    
    .

2.    TpFIBErrorHandler.Options   :   oeLostConnect. 
      ,       
       TpDataBase .
   
3.
        NUMERIC  IB6. 
      .  .  ,  
   .
4.  - ,      ,     .
 

=============
05.2000
         .
         :

    CREATE TABLE FIB$FIELDS_INFO (TABLE_NAME VARCHAR(25) NOT NULL, 
   FIELD_NAME VARCHAR(25) NOT NULL, 
   DISPLAY_LABEL VARCHAR(25),
   VISIBLE FIB$BOOLEAN DEFAULT 1 NOT NULL,
   DISPLAY_FORMAT VARCHAR(15),
   EDIT_FORMAT VARCHAR(15),
   TRIGGERED FIB$BOOLEAN DEFAULT 0 NOT NULL,
   CONSTRAINT PK_FIB$FIELDS_INFO PRIMARY KEY (TABLE_NAME, FIELD_NAME))

         
    
    Field.DisplayLabel,Field.Visible,Field.DisplayFormat,Field.EditFormat.

    .

    1.  ,   PFIBDataBase    :
       "Edit Field info table".        
       FIB$FIELDS_INFO,      .
    2.  .
    4.  pFIBDataSet.PrepareOptions   :psApplyRepositary.
    5.   pFIBDataSet.

 :      .
            TableName.FieldName.
            SPName.FieldName.    
         ,    
      "ALIAS". 

  
 Select Field1,SUM(Field2) ff from Table1
 group by  Field1

   Field1    :
   FIB$FIELDS_INFO :
    TABLE_NAME ='Table1';
    FIELD_NAME ='ff';
    ...

   Field2    :
   FIB$FIELDS_INFO :
    TABLE_NAME ='ALIAS';
    FIELD_NAME ='ff';
    ...

  .   IB6    
,       
 c   /.

  .     .:)

04.2000
     TpFIBQuery  
    procedure ExecProcedure(const ProcName:string);
    procedure ExecProcedure(const ProcName:string;
      InputParams:array of variant);

04.2000
   pFIBErrorHandler -    
                        IB. 
     
      OnFIBErrorEvent:TOnFIBErrorEvent
  
  TOnFIBErrorEvent=
   procedure (Sender:TObject;ErrorValue:EFIBError;
                        var DoRaise:boolean
   ) of object;
         Application.OnException
     .   Sender   
        .
      FIBDatabase,FIBTransaction,FIBQuery,FIBBlobStream.
          ,   
     Sender=nil



04.2000
     ,  .
     -   Array .   
      .   ,   
    ,        SQL .  
     .       ...
    FibPlus.txt   .


02.2000
      -   -.
      ,       .
     :
   1.        . :
        function  DomainForField(Fld:Variant):string;
                 .
    (  , 
                  
       -         
     .         ,
             .     
            
     )
   2.         
       UpdateSQl'   .
        pFibDataSet:
       AutoUpdateOptions
       published
        UpdateTableName:string; -  
        KeyFields      :string; // 
        AutoReWriteSqls:boolean; // -   UpdateSQL?
        GeneratorName :string; // 
        SelectGenID:boolean;// -    
        GenBeforePost:boolean;//   Post,  OnNewRecord
       end;
             
       function  GenerateModifyText
         (const TableName,KeyFieldName:string;UK:TUpdateKind):string;

              .
  3.    Sort.         
      .   - ?

  4.      InsertRecord ,      
        .     (special
     thanks)  . :     
     poAppendMode=true   AppendRecord.

  5.         . 
          TpFIBDataSet.  FIBPlus.txt

01.1999
             .
       .    
    FIBC,     +. 
     FIBPlus.INC   ONLY_PLUS.   , 
       FIBC   ,  , 
       .
 
12.1999
        5 .     BCD 
   .     - ,         
        .   BCD 
           .    
    .
      . 
    TFIBIntegerField :   AsBoolean;
                          IsTimeField:Boolean;
                           true      
                         
                   Time.  

    TFIBFloatField   :   RoundByScale:Boolean;
                           true    
                          .
 
12.1999
     DoBeforePost;  appendMode    
    .   
11.1999
    FIBDataSet:
      SQLInsert        ,
            . .. 
           .
    (    ).    ,   
    CachedUpdates:=true,         
       .

      : FIBHourglassCursor:Tcursor;
         .    
     .     

    FIBQuery:
      Bug fixed:    SQL     
                 .     ,  .     
        .  ...


    FIBDataBase.     : 
     isc_dpb_dummy_packet_interval, isc_dpb_connect_timeout,
     isc_dpb_no_garbage_collect,isc_dpb_garbage_collect.    
          
     isc_dpb_gbak_attach,isc_dpb_overwrite ...
      .        
   .
     
               

 11.1999
   FibQuery:        
               SetParamValues(ParamValues: array of Variant)
               ExecWP(ParamValues: array of Variant)
           // Exec Query with ParamValues
     TpFibDataSet 
      OpenWP(ParamValues: array of Variant);

          

     Sort     ordering.  
   to Dorin Marcoci.       Fields. 
          , ,  
      .

    FibQuery  FieldByName  .    pFibQuery
     FN  FieldByName.   
   With myQuery do FN('MyField')....
     pFIBDataSet.     FindField.  

 
==================
 09.1999

     .       
  .  TpFIBDataSet   Container.    
  :         
   ,     .    
       .      
    .
  :    
  
 pFibDataSet1.Container:= DSContainer1;
 pFibDataSet2.Container:= DSContainer1;
 pFibDataSet3.Container:= DSContainer1;

..........

 procedure  
  DSContainer1.OnDataSetEvent(DataSet:TDataSet;Event:TKindDataSetEvent);
 begin
  if Event=deOnNewRecord then
  with DataSet do 
   if FindField('ApplicationName')<>nil then 
      FieldByName('ApplicationName').asString:=Application.ExeName
 end ;

       .
 
  ,        OnUserEvent :
   TUserEvent =
    procedure (Sender:TObject;Receiver:TDataSet;const EventName:string;
     var Info :string
    ) of object;

     

NotifyDataSets(Sender:TObject;const UDA,UDE:string;var Info :string);  dynamic;


 //  (UDA - user defined address) : Form1.pFibDataSet1  Form1.*
 //  (UDE - user defined Event)    : ' '

   ,         
   (  +  ),    
  (property pFibDataSet1.RegisterEvents)
    OnUserEvent.

 :
    " "


 pFibDataSet1.Container:= DSContainer1;
 pFibDataSet2.Container:= DSContainer1;
 pFibDataSet3.Container:= DSContainer1;
..........
 var NewDateBegin:TdateTime;
     NewDateEnd:TdateTime;

 procedure SetNewPeriod;
 begin
  NewDateBegin:='01.01.2000';
  NewDateEnd  :='31.06.2000';
  DSContainer1.NotifyDataSets(nil,'*.*','CHANGE PERIOD','');  
 end;


 procedure DSContainer1.OnUserEvent(Sender:TObject;Receiver:TDataSet;
     const EventName:string;var Info :string);
 begin
  if EventName='CHANGE PERIOD' then begin
    Receiver.Close;
    Receiver.Open
  end;
 end ;

 procedure  
  DSContainer1.OnDataSetEvent(DataSet:TDataSet;Event:TKindDataSetEvent);
 begin
  if Event=deBeforeOpen then
  with DataSet do  begin
   if ParamByName('DateBegin')<>nil then 
    ParamByName('DateBegin').asDateTime:=NewDateBegin;  
   if ParamByName('DateEnd')<>nil then 
    ParamByName('DateEnd').asDateTime:=NewDateEnd 
  end   
 end ;


    ,        
     . 

07.1999
      FIBC.  G.Deatz   
  ,      .
      . SmallInt   
   ,         
    TIntegerField,     ,    
        TsmallInt,    TsmallInt.
          FIBPlus.INC.

  pFIBDataSet   LockRecord.   - .  
  Update    /. 
      OnLockError.

    OnFilterRecord     
 Field.Value.
   ApplyUpdToBase.  - ,  FIBC 
     OnUpdateRecord   .    
   .

  pFIBQuery   BlobToStrings  BlobAsString.    
  Memo...,     . 

  TpFIBTransaction   
 BeforeStart,  AfterStart,   BeforeEnd,  AfterEnd,
        TpFIBDataBase.   


 30.04.1999
      pFIBDataSet :
        RecordFieldValue -       
                            
        CloneRecord      - Insert       
                            
        CloneCurRecord   - Insert      
                              .
        ApplyUpdToBase   - ApplyUpdates     
                               .
        CommitUpdToCach  -  .
  
  .

  1.    Insert    .    
       ,    - .   
  2.      CalcFields.

  :

  ApplyUpdToBase,CommitUpdToCach.
  
       CachedUpdates  
  Filtered.    ApplyUpdates   
      ,   ,  UpdatesPending 
    .     . 
    ,     ApplyUpdates, 
     ApplyUpdToBase  CommitUpdToCach. 
   ,         .  
    ,         .
       ApplyUpdates    
  .    
        , 
       BeforeScroll, AfterScroll  
       .

   .
   FIBDataSet1.Transaction.StartTransaction;
   try  
    FIBDataSet1.ApplyUpdToBase;
    FIBDataSet1.Transaction.Commit; // or  CommitRetaining
    FIBDataSet1.CommitUpdToCach
   except
    FIBDataSet1.Transaction.RollBack;
    // if NeedCancelUpdates then
    FIBDataSet1.CancelUpdates
   end


   :

   SmallInt  BCD.   BCD   float  Scale<=4.
  ,    Float,  Display/EditFormat 
  Scale.        FIBPlus.Inc.
 
       RX.   
      StrUtil
