ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBDBReg.pas
(Generate patch)

Comparing ibx/trunk/design/IBDBReg.pas (file contents):
Revision 33 by tony, Sat Jul 18 12:30:52 2015 UTC vs.
Revision 107 by tony, Thu Jan 18 14:37:40 2018 UTC

# Line 39 | Line 39 | unit IBDBReg;
39   *)
40   {$A+}                           (* Aligned records: On *)
41   {$B-}                           (* Short circuit boolean expressions: Off *)
42 {$G+}                           (* Imported data: On *)
42   {$H+}                           (* Huge Strings: On *)
43   {$J-}                           (* Modification of Typed Constants: Off *)
44   {$M+}                           (* Generate run-time type information: On *)
# Line 47 | Line 46 | unit IBDBReg;
46   {$Q-}                           (* Overflow checks: Off *)
47   {$R-}                           (* Range checks: Off *)
48   {$T+}                           (* Typed address: On *)
50 {$U+}                           (* Pentim-safe FDIVs: On *)
49   {$W-}                           (* Always generate stack frames: Off *)
50   {$X+}                           (* Extended syntax: On *)
51   {$Z1}                           (* Minimum Enumeration Size: 1 Byte *)
# Line 56 | Line 54 | interface
54  
55   uses SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo,
56       DB, IBTable, IBDatabase,  IBEventsEditor,  LazarusPackageIntf,
57 <      IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor,
57 >      IBUpdateSQL, IBUpdate, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor,
58       dbFieldLinkPropEditor, dbFieldListPropEditor, IBDialogs;
59  
60   type
# Line 85 | Line 83 | type
83      procedure GetValues(Proc: TGetStrProc); override;
84    end;
85  
86 +  { TIBPackageNameProperty
87 +    Editor for the TIBStoredProc.PackageName property.  Displays a drop-down list of all
88 +    the StoredProcedures in the Database.}
89 +  TIBPackageNameProperty = class(TIBNameProperty)
90 +  public
91 +    procedure GetValues(Proc: TGetStrProc); override;
92 +  end;
93 +
94    { TIBTableNameProperty
95      Editor for the TIBTable.TableName property.  Displays a drop-down list of all
96      the Tables in the Database.}
# Line 134 | Line 140 | type
140      function GetVerbCount: Integer; override;
141    end;
142  
143 +  { TIBArrayGridEditor }
144 +
145 +  TIBArrayGridEditor = class(TComponentEditor)
146 +  public
147 +    procedure ExecuteVerb(Index: Integer); override;
148 +    function GetVerb(Index: Integer): string; override;
149 +    function GetVerbCount: Integer; override;
150 +  end;
151 +
152   { TIBQueryEditor }
153  
154    TIBQueryEditor = class(TFieldsComponentEditor)
# Line 189 | Line 204 | type
204    end;
205  
206    TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
192  public
193    procedure Edit; override;
207    end;
208  
209    { TIBTableFieldLinkProperty }
# Line 355 | Line 368 | type
368      procedure SetIndexFieldNames(const Value: string); override;
369    end;
370  
371 +  { TIBFieldDefsProperty }
372 +
373 +  TIBFieldDefsProperty = class(TCollectionPropertyEditor)
374 +  public
375 +    procedure Edit; override;
376 +  end;
377 +
378 +  { TIBIndexDefsProperty }
379 +
380 +  TIBIndexDefsProperty = class(TCollectionPropertyEditor)
381 +  public
382 +    procedure Edit; override;
383 +  end;
384  
385  
386   procedure Register;
387  
388   implementation
389  
390 < uses IB, IBQuery, IBStoredProc, IBCustomDataSet,
391 <     IBIntf, IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents,
390 > uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
391 >     IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
392       IBServices, IBDatabaseEdit, IBTransactionEdit,
393       IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
394       IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
395       IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
396       IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
397 <     IBTreeView, DBControlGrid;
398 <
397 >     IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
398 >     IBArrayGrid, IBVersion, IBDataOutput;
399  
400 + const
401 +  IBPalette1 = 'Firebird'; {do not localize}
402 +  IBPalette2 = 'Firebird Admin'; {do not localize}
403 +  IBPalette3 = 'Firebird Data Controls';   {do not localize}
404 +  
405 + resourcestring
406 +   SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
407 +   SEditSQL = 'Edit SQL';
408 +   SIBSQLEditor = 'IBSQL Editor';
409 +   SIBServiceEditor = 'Edit IB Service';
410 +   SIBUpdateSQLEditor = '&UpdateSQL Editor...';
411 +   SIBDataSetEditor = '&Dataset Editor...';
412 +   SExecute = 'E&xecute';
413 +   SIBDatabaseEditor = 'Da&tabase Editor...';
414 +   SIBTransactionEditor = '&Transaction Editor...';
415 +   SIBUpdateLayout = 'Update Layout';
416  
417   procedure Register;
418   begin
# Line 380 | Line 422 | begin
422      Exit;
423    end;
424  
425 <  RegisterNoIcon([TIBStringField, TIBBCDField]);
425 >  RegisterNoIcon([TIBStringField, TIBBCDField, TIBMemoField, TIBArrayField,
426 >    TIBSmallintField, TIBIntegerField, TIBLargeIntField]);
427    {$if lcl_fullversion < 01010000}
428    {see http://bugs.freepascal.org/view.php?id=19035 }
429    RegisterNoIcon([TIntegerField]);
430    {$endif}
431    RegisterComponents(IBPalette1, [ TIBQuery, TIBDataSet,
432 <   TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBEvents,
432 >   TIBDatabase, TIBTransaction, TIBUpdateSQL, TIBUpdate, TIBEvents,
433       TIBSQL, TIBDatabaseInfo, TIBSQLMonitor,
434 <       TIBStoredProc,TIBBatchMove,  TIBTable,TIBExtract]);
435 <  if IBServiceAPIPresent  then
434 >       TIBStoredProc,TIBBatchMove,  TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
435 >       TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
436 >  if FirebirdAPI.HasServiceAPI  then
437      RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
438        TIBRestoreService, TIBValidationService, TIBStatisticalService,
439        TIBLogService, TIBSecurityService, TIBServerProperties]);
440  
441  
442 <  RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid]);
442 >  RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
443    RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
444    RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
445 +  RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
446    RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
447    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize}
448    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize}
449    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize}
450    RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize}
451 +  RegisterPropertyEditor(TypeInfo(TFieldDefs), TIBTable, 'FieldDefs', TIBFieldDefsProperty); {do not localize}
452 +  RegisterPropertyEditor(TypeInfo(TIndexDefs), TIBTable, 'IndexDefs', TIBIndexDefsProperty); {do not localize}
453    RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize}
454    RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize}
455    RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize}
# Line 417 | Line 464 | begin
464    RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
465    RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
466    RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
467 +  RegisterPropertyEditor(TypeInfo(TPersistent), TIBTable, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
468  
469    RegisterComponentEditor(TIBDatabase, TIBDatabaseEditor);
470    RegisterComponentEditor(TIBTransaction, TIBTransactionEditor);
# Line 426 | Line 474 | begin
474    RegisterComponentEditor(TIBStoredProc, TIBStoredProcEditor);
475    RegisterComponentEditor(TIBSQL, TIBSQLEditor);
476    RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
477 +  RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
478  
479  
480    {Firebird Data Access Controls}
# Line 438 | Line 487 | begin
487    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
488    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
489  
490 +  IBGUIInterface :=  TIBDSLCLInterface.Create;
491   end;
492  
493   procedure LoadDataSourceFields(DataSource: TDataSource; List: TStrings);
# Line 462 | Line 512 | begin
512    end;
513   end;
514  
515 + { TIBPackageNameProperty }
516 +
517 + procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
518 + var
519 +   StoredProc : TIBStoredProc;
520 +   i : integer;
521 + begin
522 +    StoredProc := GetComponent(0) as TIBStoredProc;
523 +    if StoredProc.Database = nil then
524 +      Exit;
525 +
526 +    with StoredProc do
527 +    try
528 +      for I := 0 to PackageNames.Count - 1 do
529 +        Proc (PackageNames[i]);
530 +    except on E: Exception do
531 +      MessageDlg(E.Message,mtError,[mbOK],0)
532 +    end;
533 + end;
534 +
535 + { TIBIndexDefsProperty }
536 +
537 + procedure TIBIndexDefsProperty.Edit;
538 + var IndexDefs: TIndexDefs;
539 + begin
540 +  IndexDefs := TIndexDefs(GetObjectValue);
541 +  if IndexDefs <> nil then
542 +    IndexDefs.Update;
543 +  inherited Edit;
544 + end;
545 +
546 + { TIBFieldDefsProperty }
547 +
548 + procedure TIBFieldDefsProperty.Edit;
549 + var FieldDefs: TFieldDefs;
550 + begin
551 +  FieldDefs := TFieldDefs(GetObjectValue);
552 +  if FieldDefs <> nil then
553 +    FieldDefs.Update;
554 +  inherited Edit;
555 + end;
556 +
557 + { TIBArrayGridEditor }
558 +
559 + procedure TIBArrayGridEditor.ExecuteVerb(Index: Integer);
560 + begin
561 +  if Index < inherited GetVerbCount then
562 +    inherited ExecuteVerb(Index)
563 +  else
564 +  case Index of
565 +    0: TIBArrayGrid(Component).UpdateLayout;
566 +  end;
567 + end;
568 +
569 + function TIBArrayGridEditor.GetVerb(Index: Integer): string;
570 + begin
571 +  if Index < inherited GetVerbCount then
572 +    Result := inherited GetVerb(Index) else
573 +  begin
574 +    Dec(Index, inherited GetVerbCount);
575 +    case Index of
576 +      0: Result := SIBUpdateLayout;
577 +      1 : Result := SInterbaseExpressVersion ;
578 +    end;
579 +  end;
580 + end;
581 +
582 + function TIBArrayGridEditor.GetVerbCount: Integer;
583 + begin
584 +  Result := 2;
585 + end;
586 +
587   { TDBLookupPropertiesGridFieldProperty }
588  
589   procedure TDBLookupPropertiesGridFieldProperty.FillValues(
# Line 742 | Line 864 | var
864    IBSQL: TIBSQL;
865   begin
866    IBSQL := GetComponent(0) as TIBSQL;
867 <  if IBSQLEditor.EditIBSQL(IBSQL) then Modified;
867 >  if IBSQLEditor.EditSQL(IBSQL) then Modified;
868   end;
869  
870   { TIBUpdateSQLEditor }
# Line 756 | Line 878 | function TIBUpdateSQLEditor.GetVerb(Inde
878   begin
879    case Index of
880      0 : Result := SIBUpdateSQLEditor;
881 <    1: Result := SInterbaseExpressVersion;
881 >    1: Result := SInterbaseExpressVersion ;
882    end;
883   end;
884  
# Line 768 | Line 890 | end;
890   { TIBDataSetEditor }
891  
892   procedure TIBDataSetEditor.ExecuteVerb(Index: Integer);
771 var
772  IBDataset: TIBDataset;
893   begin
894    if Index < inherited GetVerbCount then
895      inherited ExecuteVerb(Index) else
# Line 793 | Line 913 | begin
913      case Index of
914        0: Result := SIBDataSetEditor;
915        1: Result := SExecute;
916 <      2: Result := SInterbaseExpressVersion;
916 >      2: Result := SInterbaseExpressVersion ;
917      end;
918    end;
919   end;
# Line 850 | Line 970 | begin
970      Dec(Index, inherited GetVerbCount);
971      case Index of
972        0: Result := SIBDatabaseEditor;
973 <      1 : Result := SInterbaseExpressVersion;
973 >      1 : Result := SInterbaseExpressVersion ;
974      end;
975    end;
976   end;
# Line 873 | Line 993 | function TIBTransactionEditor.GetVerb(In
993   begin
994    case Index of
995      0: Result := SIBTransactionEditor;
996 <    1: Result := SInterbaseExpressVersion;
996 >    1: Result := SInterbaseExpressVersion ;
997    end;
998   end;
999  
# Line 909 | Line 1029 | begin
1029      case Index of
1030        0: Result := SExecute;
1031        1: Result := SEditSQL;
1032 <      2: Result := SInterbaseExpressVersion;
1032 >      2: Result := SInterbaseExpressVersion ;
1033      end;
1034    end;
1035   end;
# Line 939 | Line 1059 | begin
1059      Dec(Index, inherited GetVerbCount);
1060      case Index of
1061        0: Result := SExecute;
1062 <      1: Result := SInterbaseExpressVersion;
1062 >      1: Result := SInterbaseExpressVersion ;
1063      end;
1064    end;
1065   end;
# Line 949 | Line 1069 | begin
1069    Result := inherited GetVerbCount + 2;
1070   end;
1071  
952 { TIBStoredProcParamsProperty }
953
954 procedure TIBStoredProcParamsProperty.Edit;
955 var
956  StoredProc: TIBStoredProc;
957  Params: TParams;
958 begin
959  StoredProc := (GetComponent(0) as TIBStoredProc);
960  Params := TParams.Create(nil);
961  try
962    StoredProc.CopyParams(Params);
963  finally
964    Params.Free;
965  end;
966  inherited Edit;
967 end;
968
1072   { TIBTableFieldLinkProperty }
1073  
1074   procedure TIBTableFieldLinkProperty.Edit;
# Line 1024 | Line 1127 | end;
1127   procedure TIBRefreshSQLProperty.Edit;
1128   var
1129    IBDataset: TIBDataset;
1027  aDatabase: TIBDatabase;
1130   begin
1131    IBDataset := GetComponent(0) as TIBDataset;
1132    if IBRefreshSQLEditor.EditSQL(IBDataSet,IBDataSet.RefreshSQL) then Modified;
# Line 1111 | Line 1213 | end;
1213  
1214   procedure TIBSQLEditor.ExecuteVerb(Index: Integer);
1215   begin
1216 <  if IBSQLEditor.EditIBSQL(TIBSQL(Component)) then Modified;
1216 >  if IBSQLEditor.EditSQL(TIBSQL(Component)) then Modified;
1217   end;
1218  
1219   function TIBSQLEditor.GetVerb(Index: Integer): string;
1220   begin
1221    case Index of
1222      0 : Result := SIBSQLEditor;
1223 <    1: Result := SInterbaseExpressVersion;
1223 >    1: Result := SInterbaseExpressVersion ;
1224    end;
1225   end;
1226  
# Line 1134 | Line 1236 | var
1236    IBSQL: TIBSQL;
1237   begin
1238    IBSQL := GetComponent(0) as TIBSQL;
1239 <  if IBSQLEditor.EditIBSQL(IBSQL) then Modified;
1239 >  if IBSQLEditor.EditSQL(IBSQL) then Modified;
1240   end;
1241  
1242   initialization

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines