54 |
|
|
55 |
|
interface |
56 |
|
|
57 |
< |
uses {Windows,} SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo, |
57 |
> |
uses SysUtils, Classes, Graphics, Dialogs, Controls, Forms, TypInfo, |
58 |
|
DB, IBTable, IBDatabase, IBEventsEditor, LazarusPackageIntf, |
59 |
< |
IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor; |
59 |
> |
IBUpdateSQL, IBXConst, ComponentEditors, PropEdits, DBPropEdits, FieldsEditor, |
60 |
> |
dbFieldLinkPropEditor; |
61 |
|
|
62 |
|
type |
63 |
|
|
93 |
|
procedure GetValues(Proc: TGetStrProc); override; |
94 |
|
end; |
95 |
|
|
96 |
+ |
{ TDBStringProperty } |
97 |
+ |
|
98 |
|
TDBStringProperty = class(TStringProperty) |
99 |
+ |
private |
100 |
+ |
function ConnecttoDB: boolean; |
101 |
|
public |
102 |
|
function GetAttributes: TPropertyAttributes; override; |
103 |
|
procedure GetValueList(List: TStrings); virtual; |
104 |
|
procedure GetValues(Proc: TGetStrProc); override; |
105 |
+ |
procedure Edit; override; |
106 |
|
end; |
107 |
|
|
108 |
+ |
{ TIBIndexFieldNamesProperty } |
109 |
+ |
|
110 |
|
TIBIndexFieldNamesProperty = class(TDBStringProperty) |
111 |
|
public |
112 |
|
procedure GetValueList(List: TStrings); override; |
192 |
|
public |
193 |
|
procedure Edit; override; |
194 |
|
end; |
195 |
< |
(* |
195 |
> |
|
196 |
> |
{ TIBTableFieldLinkProperty } |
197 |
> |
|
198 |
|
TIBTableFieldLinkProperty = class(TFieldLinkProperty) |
199 |
|
private |
200 |
|
FTable: TIBTable; |
201 |
|
protected |
202 |
+ |
function GetIndexDefs: TIndexDefs; override; |
203 |
|
function GetIndexFieldNames: string; override; |
204 |
|
function GetMasterFields: string; override; |
205 |
|
procedure SetIndexFieldNames(const Value: string); override; |
207 |
|
public |
208 |
|
procedure Edit; override; |
209 |
|
end; |
210 |
< |
*) |
210 |
> |
|
211 |
|
{ TSQLPropertyEditor } |
212 |
|
|
213 |
|
TSQLPropertyEditor = class(TStringsPropertyEditor) |
366 |
|
RegisterPropertyEditor(TypeInfo(string), TIBTable, 'TableName', TIBTableNameProperty); {do not localize} |
367 |
|
RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexName', TIBIndexNameProperty); {do not localize} |
368 |
|
RegisterPropertyEditor(TypeInfo(string), TIBTable, 'IndexFieldNames', TIBIndexFieldNamesProperty); {do not localize} |
369 |
< |
// RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize} |
369 |
> |
RegisterPropertyEditor(TypeInfo(string), TIBTable, 'MasterFields', TIBTableFieldLinkProperty); {do not localize} |
370 |
|
RegisterPropertyEditor(TypeInfo(TStrings), TIBQuery, 'SQL', TIBQuerySQLProperty); {do not localize} |
371 |
|
RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'SelectSQL', TIBDatasetSQLProperty); {do not localize} |
372 |
|
RegisterPropertyEditor(TypeInfo(TStrings), TIBDataSet, 'ModifySQL', TIBUpdateSQLProperty); {do not localize} |
474 |
|
|
475 |
|
procedure TIBTableNameProperty.GetValues(Proc: TGetStrProc); |
476 |
|
var |
477 |
< |
TableName : TIBTable; |
477 |
> |
Table : TIBTable; |
478 |
|
i : integer; |
479 |
|
begin |
480 |
< |
TableName := GetComponent(0) as TIBTable; |
481 |
< |
with TableName do |
480 |
> |
Table := GetComponent(0) as TIBTable; |
481 |
> |
if Table.Database = nil then |
482 |
> |
Exit; |
483 |
> |
with Table do |
484 |
|
for I := 0 to TableNames.Count - 1 do |
485 |
|
Proc (TableNames[i]); |
486 |
|
end; |
487 |
|
|
488 |
|
{ TDBStringProperty } |
489 |
|
|
490 |
+ |
function TDBStringProperty.ConnecttoDB: boolean; |
491 |
+ |
var DataSet: TIBCustomDataSet; |
492 |
+ |
begin |
493 |
+ |
Result := false; |
494 |
+ |
DataSet := (GetComponent(0) as TIBCustomDataSet); |
495 |
+ |
if assigned(Dataset.Database) then |
496 |
+ |
begin |
497 |
+ |
try |
498 |
+ |
DataSet.Database.Connected := true; |
499 |
+ |
except on E: Exception do |
500 |
+ |
ShowMessage(E.Message) |
501 |
+ |
end; |
502 |
+ |
Result := DataSet.Database.Connected |
503 |
+ |
end; |
504 |
+ |
end; |
505 |
+ |
|
506 |
|
function TDBStringProperty.GetAttributes: TPropertyAttributes; |
507 |
|
begin |
508 |
|
Result := [paValueList, paSortList, paMultiSelect]; |
517 |
|
I: Integer; |
518 |
|
Values: TStringList; |
519 |
|
begin |
520 |
+ |
if not ConnecttoDB then Exit; |
521 |
|
Values := TStringList.Create; |
522 |
|
try |
523 |
|
GetValueList(Values); |
527 |
|
end; |
528 |
|
end; |
529 |
|
|
530 |
+ |
procedure TDBStringProperty.Edit; |
531 |
+ |
begin |
532 |
+ |
if ConnecttoDB then |
533 |
+ |
inherited Edit; |
534 |
+ |
end; |
535 |
+ |
|
536 |
|
{ Utility Functions } |
537 |
|
|
538 |
|
function GetPropertyValue(Instance: TPersistent; const PropName: string): TPersistent; |
594 |
|
Query: TIBQuery; |
595 |
|
begin |
596 |
|
Query := GetComponent(0) as TIBQuery; |
597 |
< |
if IBSelectSQLEditor.EditSQL(Query.Database,Query.SQL) then Modified; |
597 |
> |
if IBSelectSQLEditor.EditSQL(Query,Query.SQL) then Modified; |
598 |
|
end; |
599 |
|
|
600 |
|
{ TIBDatasetSQLProperty } |
604 |
|
IBDataset: TIBDataset; |
605 |
|
begin |
606 |
|
IBDataset := GetComponent(0) as TIBDataset; |
607 |
< |
if IBSelectSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.SelectSQL) then Modified; |
607 |
> |
if IBSelectSQLEditor.EditSQL(IBDataSet,IBDataSet.SelectSQL) then Modified; |
608 |
|
end; |
609 |
|
|
610 |
|
{ TIBSQLProperty } |
614 |
|
IBSQL: TIBSQL; |
615 |
|
begin |
616 |
|
IBSQL := GetComponent(0) as TIBSQL; |
617 |
< |
if IBSelectSQLEditor.EditSQL(IBSQL.Database,IBSQL.SQL) then Modified; |
617 |
> |
if IBSQLEditor.EditIBSQL(IBSQL) then Modified; |
618 |
|
end; |
619 |
|
|
620 |
|
{ TIBUpdateSQLEditor } |
767 |
|
Dec(Index, inherited GetVerbCount); |
768 |
|
case Index of |
769 |
|
0: Query.ExecSQL; |
770 |
< |
1: if ibselectsqleditor.EditSQL(Query.Database,Query.SQL) then Designer.Modified; |
770 |
> |
1: if ibselectsqleditor.EditSQL(Query,Query.SQL) then Designer.Modified; |
771 |
|
end; |
772 |
|
end; |
773 |
|
end; |
837 |
|
end; |
838 |
|
inherited Edit; |
839 |
|
end; |
840 |
< |
(* |
840 |
> |
|
841 |
|
{ TIBTableFieldLinkProperty } |
842 |
|
|
843 |
|
procedure TIBTableFieldLinkProperty.Edit; |
844 |
|
begin |
845 |
|
FTable := DataSet as TIBTable; |
846 |
+ |
if assigned(FTable.Database) then |
847 |
+ |
FTable.Database.Connected := true; |
848 |
|
inherited Edit; |
849 |
|
end; |
850 |
|
|
851 |
+ |
function TIBTableFieldLinkProperty.GetIndexDefs: TIndexDefs; |
852 |
+ |
begin |
853 |
+ |
Result := FTable.IndexDefs |
854 |
+ |
end; |
855 |
+ |
|
856 |
|
function TIBTableFieldLinkProperty.GetIndexFieldNames: string; |
857 |
|
begin |
858 |
|
Result := FTable.IndexFieldNames; |
871 |
|
procedure TIBTableFieldLinkProperty.SetMasterFields(const Value: string); |
872 |
|
begin |
873 |
|
FTable.MasterFields := Value; |
874 |
< |
end;*) |
874 |
> |
end; |
875 |
|
|
876 |
|
{ TIBUpdateSQLProperty } |
877 |
|
|
880 |
|
IBDataset: TIBDataset; |
881 |
|
begin |
882 |
|
IBDataset := GetComponent(0) as TIBDataset; |
883 |
< |
if IBModifySQLEditor.EditSQL(IBDataSet.Database,IBDataSet.ModifySQL) then Modified; |
883 |
> |
if IBModifySQLEditor.EditSQL(IBDataSet,IBDataSet.ModifySQL) then Modified; |
884 |
|
end; |
885 |
|
|
886 |
|
{ TIBUpdateSQLUpdateProperty } |
888 |
|
procedure TIBUpdateSQLUpdateProperty.Edit; |
889 |
|
begin |
890 |
|
GetObjects; |
891 |
< |
if IBModifySQLEditor.EditSQL(FDatabase,FIBUpdateSQL.ModifySQL) then Modified; |
891 |
> |
if IBModifySQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.ModifySQL) then Modified; |
892 |
|
end; |
893 |
|
|
894 |
|
{ TIBRefreshSQLProperty } |
899 |
|
aDatabase: TIBDatabase; |
900 |
|
begin |
901 |
|
IBDataset := GetComponent(0) as TIBDataset; |
902 |
< |
if IBRefreshSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.RefreshSQL) then Modified; |
902 |
> |
if IBRefreshSQLEditor.EditSQL(IBDataSet,IBDataSet.RefreshSQL) then Modified; |
903 |
|
end; |
904 |
|
|
905 |
|
{ TIBUpdateSQLRefreshSQLProperty } |
907 |
|
procedure TIBUpdateSQLRefreshSQLProperty.Edit; |
908 |
|
begin |
909 |
|
GetObjects; |
910 |
< |
if IBRefreshSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.RefreshSQL) then Modified; |
910 |
> |
if IBRefreshSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.RefreshSQL) then Modified; |
911 |
|
end; |
912 |
|
|
913 |
|
{ TIBDeleteSQLProperty } |
914 |
|
|
915 |
|
procedure TIBDeleteSQLProperty.Edit; |
916 |
|
var |
917 |
< |
IBDataset: TIBDataset; |
917 |
> |
IBDataset: TIBDataSet; |
918 |
|
begin |
919 |
< |
IBDataset := GetComponent(0) as TIBDataset; |
920 |
< |
if IBDeleteSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.DeleteSQL) then Modified; |
919 |
> |
IBDataset := GetComponent(0) as TIBDataSet; |
920 |
> |
if IBDeleteSQLEditor.EditSQL(IBDataSet,IBDataSet.DeleteSQL) then Modified; |
921 |
|
end; |
922 |
|
|
923 |
|
{ TIBUpdateSQLDeleteProperty } |
930 |
|
procedure TIBUpdateSQLDeleteProperty.Edit; |
931 |
|
begin |
932 |
|
GetObjects; |
933 |
< |
if IBDeleteSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.DeleteSQL) then Modified; |
933 |
> |
if IBDeleteSQLEditor.EditSQL(FIBUpdateSQL.DataSet,FIBUpdateSQL.DeleteSQL) then Modified; |
934 |
|
end; |
935 |
|
|
936 |
|
{ TUpdateSQLPropertyEditor } |
953 |
|
|
954 |
|
procedure TIBInsertSQLProperty.Edit; |
955 |
|
var |
956 |
< |
IBDataset: TIBDataset; |
956 |
> |
IBDataset: TIBDataSet; |
957 |
|
begin |
958 |
< |
IBDataset := GetComponent(0) as TIBDataset; |
959 |
< |
if IBInsertSQLEditor.EditSQL(IBDataSet.Database,IBDataSet.InsertSQL) then Modified; |
958 |
> |
IBDataset := GetComponent(0) as TIBDataSet; |
959 |
> |
if IBInsertSQLEditor.EditSQL(IBDataSet,IBDataSet.InsertSQL) then Modified; |
960 |
|
end; |
961 |
|
|
962 |
|
{ TIBUpdateSQLInsertSQLProperty } |
964 |
|
procedure TIBUpdateSQLInsertSQLProperty.Edit; |
965 |
|
begin |
966 |
|
GetObjects; |
967 |
< |
if IBInsertSQLEditor.EditSQL(FDatabase,FIBUpdateSQL.InsertSQL) then Modified; |
967 |
> |
if IBInsertSQLEditor.EditSQL(FIBUpdateSQL.Dataset,FIBUpdateSQL.InsertSQL) then Modified; |
968 |
|
end; |
969 |
|
|
970 |
|
{ TIBGeneratorProperty } |
1011 |
|
|
1012 |
|
initialization |
1013 |
|
{$I IBDBReg.lrs} |
1014 |
< |
end. |
1014 |
> |
end. |