ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/DBAdmin/DataModule.lfm
(Generate patch)

Comparing ibx/trunk/examples/DBAdmin/DataModule.lfm (file contents):
Revision 158 by tony, Thu Mar 1 11:23:33 2018 UTC vs.
Revision 268 by tony, Fri Dec 28 11:36:35 2018 UTC

# Line 1 | Line 1
1   object DatabaseData: TDatabaseData
2    OldCreateOrder = False
3    Height = 552
4 <  HorizontalOffset = 662
4 >  HorizontalOffset = 645
5    VerticalOffset = 400
6    Width = 730
7 +  PPI = 96
8    object IBDatabase1: TIBDatabase
9      Connected = False
10      AfterConnect = IBDatabase1AfterConnect
# Line 18 | Line 19 | object DatabaseData: TDatabaseData
19        'user_name=SYSDBA'
20        'sql_role_name=RDB$ADMIN'
21      )
22 +    ConfigOverrides.Strings = (
23 +      'WireCompression=true'
24 +    )
25      DefaultTransaction = CurrentTransaction
26      IdleTimer = 0
27      TraceFlags = []
# Line 57 | Line 61 | object DatabaseData: TDatabaseData
61      BeforeClose = DatabaseQueryBeforeClose
62      BufferChunks = 1000
63      CachedUpdates = False
64 +    EnableStatistics = False
65      GenerateParamNames = False
66      GeneratorField.ApplyOnEvent = gaeOnNewRecord
67 +    MasterDetailDelay = 0
68      SQL.Strings = (
69        'SELECT * FROM RDB$DATABASE, MON$DATABASE'
70      )
# Line 76 | Line 82 | object DatabaseData: TDatabaseData
82      AutoCommit = acCommitRetaining
83      BufferChunks = 1000
84      CachedUpdates = False
85 +    EnableStatistics = False
86      GenerateParamNames = False
87      GeneratorField.ApplyOnEvent = gaeOnNewRecord
88 +    MasterDetailDelay = 0
89      SQL.Strings = (
90        'Select Trim(A.RDB$CHARACTER_SET_NAME)   as RDB$CHARACTER_SET_NAME'
91        ' From RDB$DATABASE A'
# Line 95 | Line 103 | object DatabaseData: TDatabaseData
103      OnCalcFields = ShadowFilesCalcFields
104      BufferChunks = 1000
105      CachedUpdates = False
106 +    EnableStatistics = False
107      GenerateParamNames = False
108      GeneratorField.ApplyOnEvent = gaeOnNewRecord
109 +    MasterDetailDelay = 0
110      SQL.Strings = (
111        'Select * From RDB$Files Where RDB$Shadow_Number <> 0 '
112        'Order by RDB$Shadow_Number, RDB$FILE_SEQUENCE'
# Line 181 | Line 191 | object DatabaseData: TDatabaseData
191      Transaction = CurrentTransaction
192      BufferChunks = 1000
193      CachedUpdates = False
194 +    EnableStatistics = False
195      GenerateParamNames = False
196      GeneratorField.ApplyOnEvent = gaeOnNewRecord
197 +    MasterDetailDelay = 0
198      SQL.Strings = (
199        'Select count(*) as Mappings'
200        'From SEC$GLOBAL_AUTH_MAPPING A'
# Line 199 | Line 211 | object DatabaseData: TDatabaseData
211      Transaction = CurrentTransaction
212      BufferChunks = 1000
213      CachedUpdates = False
214 +    EnableStatistics = False
215      GenerateParamNames = False
216      GeneratorField.ApplyOnEvent = gaeOnNewRecord
217 +    MasterDetailDelay = 0
218      SQL.Strings = (
219        'Select trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME'
220        ' From'
# Line 218 | Line 232 | object DatabaseData: TDatabaseData
232      Transaction = CurrentTransaction
233      BufferChunks = 1000
234      CachedUpdates = False
235 +    EnableStatistics = False
236      GenerateParamNames = False
237      GeneratorField.ApplyOnEvent = gaeOnNewRecord
238 +    MasterDetailDelay = 0
239      SQL.Strings = (
240        'Select * From RDB$Files Where RDB$Shadow_Number is null or RDB$Shadow_Number = 0 '
241        'Order by RDB$FILE_SEQUENCE'
# Line 249 | Line 265 | object DatabaseData: TDatabaseData
265      Transaction = CurrentTransaction
266      BufferChunks = 1000
267      CachedUpdates = False
268 +    EnableStatistics = False
269      GenerateParamNames = False
270      GeneratorField.ApplyOnEvent = gaeOnNewRecord
271 +    MasterDetailDelay = 0
272      SQL.Strings = (
273        'Select * from MON$ATTACHMENTS'
274        'Where MON$ATTACHMENT_ID = CURRENT_CONNECTION'
# Line 260 | Line 278 | object DatabaseData: TDatabaseData
278      left = 544
279      top = 112
280    end
263  object IBStatisticalService1: TIBStatisticalService
264    Params.Strings = (
265      ''
266    )
267    LoginPrompt = False
268    TraceFlags = []
269    Options = [HeaderPages]
270    left = 33
271    top = 283
272  end
273  object IBConfigService1: TIBConfigService
274    TraceFlags = []
275    left = 162
276    top = 285
277  end
281    object TableNameLookup: TIBQuery
282      AllowAutoActivateTransaction = False
283      Database = IBDatabase1
284      Transaction = CurrentTransaction
285      BufferChunks = 1000
286      CachedUpdates = False
287 +    EnableStatistics = False
288      GenerateParamNames = False
289      GeneratorField.ApplyOnEvent = gaeOnNewRecord
290 +    MasterDetailDelay = 0
291      SQL.Strings = (
292        'SELECT r.RDB$RELATION_ID,'
293        '    trim(r.RDB$RELATION_NAME) as RDB$RELATION_NAME'
# Line 293 | Line 298 | object DatabaseData: TDatabaseData
298      left = 288
299      top = 283
300    end
296  object IBServerProperties1: TIBServerProperties
297    Params.Strings = (
298      ''
299    )
300    TraceFlags = []
301    Options = []
302    left = 40
303    top = 368
304  end
305  object IBLogService1: TIBLogService
306    TraceFlags = []
307    left = 162
308    top = 368
309  end
301    object UserList: TIBQuery
302      AllowAutoActivateTransaction = False
303      Database = IBDatabase1
# Line 318 | Line 309 | object DatabaseData: TDatabaseData
309      BeforeClose = UserListBeforeClose
310      BufferChunks = 1000
311      CachedUpdates = False
312 +    EnableStatistics = False
313      GenerateParamNames = False
314      GeneratorField.ApplyOnEvent = gaeOnNewRecord
315 +    MasterDetailDelay = 0
316      SQL.Strings = (
317        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
318 <      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as UserName, A.SEC$MIDDLE_NAME,'
318 >      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
319        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
320 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
320 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
321        'case when Count(B.MON$ATTACHMENT_ID) > 0 then true else false end as LoggedIn,'
322        'case When C.SEC$USER is not null then true else false end as DBCreator'
323        'From SEC$USERS A'
# Line 400 | Line 393 | object DatabaseData: TDatabaseData
393        Required = False
394        Size = 32
395      end
403    object UserListUSERPASSWORD: TIBStringField
404      FieldKind = fkData
405      FieldName = 'USERPASSWORD'
406      Index = 6
407      LookupCache = False
408      ProviderFlags = [pfInUpdate, pfInWhere]
409      ReadOnly = False
410      Required = False
411      Size = 32
412    end
413    object UserListUSERNAME: TIBStringField
414      FieldKind = fkData
415      FieldName = 'USERNAME'
416      Index = 7
417      LookupCache = False
418      ProviderFlags = [pfInUpdate, pfInWhere]
419      ReadOnly = False
420      Required = False
421      Size = 31
422    end
396      object UserListLOGGEDIN: TBooleanField
397        FieldKind = fkData
398        FieldName = 'LOGGEDIN'
399 <      Index = 8
399 >      Index = 6
400        LookupCache = False
401        ProviderFlags = [pfInUpdate, pfInWhere]
402        ReadOnly = False
# Line 433 | Line 406 | object DatabaseData: TDatabaseData
406      object UserListCURRENT_CONNECTION: TIBLargeIntField
407        FieldKind = fkData
408        FieldName = 'CURRENT_CONNECTION'
409 <      Index = 9
409 >      Index = 7
410        LookupCache = False
411        ProviderFlags = [pfInUpdate, pfInWhere]
412        ReadOnly = False
# Line 442 | Line 415 | object DatabaseData: TDatabaseData
415      object UserListDBCREATOR: TBooleanField
416        FieldKind = fkData
417        FieldName = 'DBCREATOR'
418 <      Index = 10
418 >      Index = 8
419        LookupCache = False
420        ProviderFlags = [pfInUpdate, pfInWhere]
421        ReadOnly = False
# Line 452 | Line 425 | object DatabaseData: TDatabaseData
425      object UserListUSERID: TLongintField
426        FieldKind = fkCalculated
427        FieldName = 'USERID'
428 <      Index = 11
428 >      Index = 9
429        LookupCache = False
430        ProviderFlags = [pfInUpdate, pfInWhere]
431        ReadOnly = False
# Line 461 | Line 434 | object DatabaseData: TDatabaseData
434      object UserListGROUPID: TLongintField
435        FieldKind = fkCalculated
436        FieldName = 'GROUPID'
437 +      Index = 10
438 +      LookupCache = False
439 +      ProviderFlags = [pfInUpdate, pfInWhere]
440 +      ReadOnly = False
441 +      Required = False
442 +    end
443 +    object UserListSECPASSWORD: TIBStringField
444 +      FieldKind = fkData
445 +      FieldName = 'SEC$PASSWORD'
446 +      Index = 11
447 +      LookupCache = False
448 +      ProviderFlags = [pfInUpdate, pfInWhere]
449 +      ReadOnly = False
450 +      Required = False
451 +      Size = 32
452 +    end
453 +    object UserListSECUSER_NAME: TIBStringField
454 +      FieldKind = fkData
455 +      FieldName = 'SEC$USER_NAME'
456        Index = 12
457        LookupCache = False
458        ProviderFlags = [pfInUpdate, pfInWhere]
459        ReadOnly = False
460        Required = False
461 +      Size = 31
462      end
463    end
464    object UpdateUsers: TIBUpdate
465      RefreshSQL.Strings = (
466        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
467 <      'A.SEC$ACTIVE, A.SEC$USER_NAME as UserName, A.SEC$MIDDLE_NAME,'
467 >      'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
468        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
469 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
469 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
470        'case when B.MON$ATTACHMENT_ID is not null then true else false end as LoggedIn,'
471        'case When C.SEC$USER is not null then true else false end as DBCreator'
472        'From SEC$USERS A'
473        'Left Outer Join MON$ATTACHMENTS B'
474        'On A.SEC$USER_NAME = B.MON$USER'
475        'Left Outer Join SEC$DB_CREATORS  C on C.SEC$USER = A.SEC$USER_NAME'
476 <      'Where  A.SEC$USER_NAME = :UserName'
476 >      'Where  A.SEC$USER_NAME = :SEC$USER_NAME'
477      )
478      OnApplyUpdates = UpdateUsersApplyUpdates
479      left = 544
# Line 494 | Line 487 | object DatabaseData: TDatabaseData
487      BufferChunks = 1000
488      CachedUpdates = False
489      DataSource = UserListSource
490 +    EnableStatistics = False
491      GenerateParamNames = False
492      GeneratorField.ApplyOnEvent = gaeOnNewRecord
493 +    MasterDetailDelay = 0
494      SQL.Strings = (
495        'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG, '
496 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
496 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
497        'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
498        'FROM RDB$ROLES r'
499        'Left Outer JOIN ('
500        'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER  From RDB$USER_PRIVILEGES '
501 <      'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
501 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
502        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME '
503        ''
504      )
505      Params = <    
506        item
507          DataType = ftUnknown
508 <        Name = 'USERNAME'
508 >        Name = 'SEC$USER_NAME'
509          ParamType = ptInput
510        end>
511      UpdateObject = UpdateUserRoles
# Line 520 | Line 515 | object DatabaseData: TDatabaseData
515      ParamData = <    
516        item
517          DataType = ftUnknown
518 <        Name = 'USERNAME'
518 >        Name = 'SEC$USER_NAME'
519          ParamType = ptInput
520        end>
521    end
522    object UpdateUserRoles: TIBUpdate
523      RefreshSQL.Strings = (
524        'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG,'
525 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
525 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
526        'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
527        'FROM RDB$ROLES r'
528        'Left Outer JOIN ('
529        'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER  From RDB$USER_PRIVILEGES'
530 <      'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
530 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
531        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME'
532        'Where  r.RDB$ROLE_NAME = :RDB$ROLE_NAME'
533      )
# Line 549 | Line 544 | object DatabaseData: TDatabaseData
544      AllowAutoActivateTransaction = False
545      Database = IBDatabase1
546      Transaction = CurrentTransaction
552    AfterDelete = UserListAfterPost
547      AfterInsert = UserTagsAfterInsert
554    AfterPost = UserListAfterPost
548      BufferChunks = 1000
549      CachedUpdates = False
550      DataSource = UserListSource
551 +    EnableStatistics = False
552      GenerateParamNames = False
553      GeneratorField.ApplyOnEvent = gaeOnNewRecord
554 +    MasterDetailDelay = 0
555      SQL.Strings = (
556        'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE'
557        'From'
558        'SEC$USER_ATTRIBUTES  A'
559 <      'Where SEC$USER_NAME = :UserName'
559 >      'Where SEC$USER_NAME = :SEC$USER_NAME'
560      )
561      Params = <    
562        item
563          DataType = ftUnknown
564 <        Name = 'UserName'
564 >        Name = 'SEC$USER_NAME'
565          ParamType = ptInput
566        end>
567      UpdateObject = TagsUpdate
# Line 576 | Line 571 | object DatabaseData: TDatabaseData
571      ParamData = <    
572        item
573          DataType = ftUnknown
574 <        Name = 'UserName'
574 >        Name = 'SEC$USER_NAME'
575          ParamType = ptInput
576        end>
577    end
# Line 596 | Line 591 | object DatabaseData: TDatabaseData
591      left = 304
592      top = 360
593    end
599  object LegacyUserList: TMemDataset
600    FieldDefs = <    
601      item
602        Name = 'USERID'
603        DataType = ftInteger
604      end    
605      item
606        Name = 'GROUPID'
607        DataType = ftInteger
608      end    
609      item
610        Name = 'USERNAME'
611        DataType = ftString
612        Size = 32
613      end    
614      item
615        Name = 'SEC$FIRST_NAME'
616        DataType = ftString
617        Size = 32
618      end    
619      item
620        Name = 'SEC$MIDDLE_NAME'
621        DataType = ftString
622        Size = 32
623      end    
624      item
625        Name = 'SEC$LAST_NAME'
626        DataType = ftString
627        Size = 32
628      end    
629      item
630        Name = 'USERPASSWORD'
631        DataType = ftString
632        Size = 32
633      end    
634      item
635        Name = 'SEC$ADMIN'
636        DataType = ftBoolean
637      end    
638      item
639        Name = 'SEC$PLUGIN'
640        DataType = ftString
641        Size = 31
642      end    
643      item
644        Name = 'SEC$ACTIVE'
645        DataType = ftBoolean
646      end    
647      item
648        Name = 'LOGGEDIN'
649        DataType = ftBoolean
650      end    
651      item
652        Name = 'DBCREATOR'
653        DataType = ftBoolean
654      end>
655    AfterOpen = LegacyUserListAfterOpen
656    BeforeClose = LegacyUserListBeforeClose
657    AfterInsert = UserListAfterInsert
658    BeforePost = LegacyUserListBeforePost
659    AfterPost = UserListAfterPost
660    BeforeDelete = LegacyUserListBeforeDelete
661    AfterDelete = UserListAfterPost
662    left = 520
663    top = 416
664  end
665  object IBSecurityService1: TIBSecurityService
666    ServerName = 'localhost'
667    Protocol = TCP
668    TraceFlags = []
669    SecurityAction = ActionAddUser
670    UserID = 0
671    GroupID = 0
672    AdminRole = False
673    left = 48
674    top = 432
675  end
594    object Attachments: TIBQuery
595      AllowAutoActivateTransaction = False
596      Database = IBDatabase1
# Line 682 | Line 600 | object DatabaseData: TDatabaseData
600      BeforeOpen = AttachmentsBeforeOpen
601      BufferChunks = 1000
602      CachedUpdates = False
603 +    EnableStatistics = False
604      GenerateParamNames = False
605      GeneratorField.ApplyOnEvent = gaeOnNewRecord
606 +    MasterDetailDelay = 0
607      SQL.Strings = (
608        'SELECT *'
609        'FROM MON$ATTACHMENTS r'
# Line 1001 | Line 921 | object DatabaseData: TDatabaseData
921      left = 376
922      top = 432
923    end
1004  object IBValidationService1: TIBValidationService
1005    TraceFlags = []
1006    Options = [ValidateFull]
1007    GlobalAction = CommitGlobal
1008    left = 168
1009    top = 432
1010  end
1011  object IBOnlineValidationService1: TIBOnlineValidationService
1012    TraceFlags = []
1013    left = 64
1014    top = 498
1015  end
1016  object InLimboList: TMemDataset
1017    FieldDefs = <    
1018      item
1019        Name = 'TransactionID'
1020        DataType = ftInteger
1021      end    
1022      item
1023        Name = 'TransactionType'
1024        DataType = ftString
1025        Size = 16
1026      end    
1027      item
1028        Name = 'HostSite'
1029        DataType = ftString
1030        Size = 256
1031      end    
1032      item
1033        Name = 'RemoteSite'
1034        DataType = ftString
1035        Size = 256
1036      end    
1037      item
1038        Name = 'DatabasePath'
1039        DataType = ftString
1040        Size = 256
1041      end    
1042      item
1043        Name = 'State'
1044        DataType = ftString
1045        Size = 32
1046      end    
1047      item
1048        Name = 'RecommendedAction'
1049        DataType = ftString
1050        Size = 32
1051      end    
1052      item
1053        Name = 'RequestedAction'
1054        DataType = ftString
1055        Size = 32
1056      end>
1057    AfterOpen = InLimboListAfterOpen
1058    BeforeClose = InLimboListBeforeClose
1059    BeforePost = InLimboListBeforePost
1060    left = 224
1061    top = 498
1062  end
924    object AdminUserQuery: TIBSQL
925      Database = IBDatabase1
926      GenerateParamNames = False
# Line 1079 | Line 940 | object DatabaseData: TDatabaseData
940      Transaction = CurrentTransaction
941      BufferChunks = 1000
942      CachedUpdates = False
943 +    EnableStatistics = False
944      GenerateParamNames = False
945      GeneratorField.ApplyOnEvent = gaeOnNewRecord
946 +    MasterDetailDelay = 0
947      SQL.Strings = (
948        'Select Trim(A.RDB$RELATION_NAME) as RDB$RELATION_NAME, 1 as Selected'
949        ' From RDB$RELATIONS A'
# Line 1107 | Line 970 | object DatabaseData: TDatabaseData
970      Transaction = CurrentTransaction
971      BufferChunks = 1000
972      CachedUpdates = False
973 +    EnableStatistics = False
974      GenerateParamNames = False
975      GeneratorField.ApplyOnEvent = gaeOnNewRecord
976 +    MasterDetailDelay = 0
977      SQL.Strings = (
978        'SELECT r.RDB$DB_KEY, cast(''Local'' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,'
979        '    Case'
# Line 1161 | Line 1026 | object DatabaseData: TDatabaseData
1026      OnCalcFields = AccessRightsCalcFields
1027      BufferChunks = 1000
1028      CachedUpdates = False
1029 +    EnableStatistics = False
1030      GenerateParamNames = False
1031      GeneratorField.ApplyOnEvent = gaeOnNewRecord
1032 +    MasterDetailDelay = 0
1033      SQL.Strings = (
1034        'with recursive AccessRight as ('
1035        'Select UP.RDB$USER as SUBJECT_NAME,'
# Line 1292 | Line 1159 | object DatabaseData: TDatabaseData
1159      BeforeOpen = SubjectAccessRightsBeforeOpen
1160      BufferChunks = 1000
1161      CachedUpdates = False
1162 +    EnableStatistics = False
1163      GenerateParamNames = False
1164      GeneratorField.ApplyOnEvent = gaeOnNewRecord
1165 +    MasterDetailDelay = 0
1166      SQL.Strings = (
1167        'Select UP.RDB$USER as SUBJECT_NAME,'
1168        '  UP.RDB$USER_TYPE as SUBJECT_TYPE,'
# Line 1353 | Line 1222 | object DatabaseData: TDatabaseData
1222          ParamType = ptInput
1223        end>
1224    end
1225 +  object IBXServicesConnection1: TIBXServicesConnection
1226 +    Connected = False
1227 +    OnLogin = IBXServicesConnection1Login
1228 +    Params.Strings = (
1229 +      'sql_role_name=RDB$ADMIN'
1230 +    )
1231 +    TraceFlags = []
1232 +    left = 640
1233 +    top = 48
1234 +  end
1235 +  object IBStatisticalService1: TIBXStatisticalService
1236 +    ServicesConnection = IBXServicesConnection1
1237 +    TraceFlags = []
1238 +    Options = [HeaderPages]
1239 +    left = 48
1240 +    top = 287
1241 +  end
1242 +  object IBConfigService1: TIBXConfigService
1243 +    ServicesConnection = IBXServicesConnection1
1244 +    TraceFlags = []
1245 +    left = 168
1246 +    top = 283
1247 +  end
1248 +  object IBServerProperties1: TIBXServerProperties
1249 +    ServicesConnection = IBXServicesConnection1
1250 +    TraceFlags = []
1251 +    left = 40
1252 +    top = 365
1253 +  end
1254 +  object IBLogService1: TIBXLogService
1255 +    ServicesConnection = IBXServicesConnection1
1256 +    TraceFlags = []
1257 +    left = 168
1258 +    top = 365
1259 +  end
1260 +  object IBSecurityService1: TIBXSecurityService
1261 +    ServicesConnection = IBXServicesConnection1
1262 +    TraceFlags = []
1263 +    UserID = 0
1264 +    GroupID = 0
1265 +    AdminRole = False
1266 +    left = 36
1267 +    top = 437
1268 +  end
1269 +  object IBValidationService1: TIBXValidationService
1270 +    ServicesConnection = IBXServicesConnection1
1271 +    TraceFlags = []
1272 +    OnGetNextLine = IBValidationService1GetNextLine
1273 +    Options = [ValidateFull]
1274 +    left = 632
1275 +    top = 416
1276 +  end
1277 +  object IBOnlineValidationService1: TIBXOnlineValidationService
1278 +    ServicesConnection = IBXServicesConnection1
1279 +    TraceFlags = []
1280 +    OnGetNextLine = IBValidationService1GetNextLine
1281 +    left = 40
1282 +    top = 503
1283 +  end
1284 +  object LegacyUserList: TIBXServicesUserList
1285 +    FieldDefs = <    
1286 +      item
1287 +        Name = 'UserID'
1288 +        DataType = ftInteger
1289 +        Precision = -1
1290 +      end    
1291 +      item
1292 +        Name = 'GroupID'
1293 +        DataType = ftInteger
1294 +        Precision = -1
1295 +      end    
1296 +      item
1297 +        Name = 'SEC$USER_NAME'
1298 +        DataType = ftString
1299 +        Precision = -1
1300 +        Size = 31
1301 +      end    
1302 +      item
1303 +        Name = 'SEC$FIRST_NAME'
1304 +        DataType = ftString
1305 +        Precision = -1
1306 +        Size = 32
1307 +      end    
1308 +      item
1309 +        Name = 'SEC$MIDDLE_NAME'
1310 +        DataType = ftString
1311 +        Precision = -1
1312 +        Size = 32
1313 +      end    
1314 +      item
1315 +        Name = 'SEC$LAST_NAME'
1316 +        DataType = ftString
1317 +        Precision = -1
1318 +        Size = 32
1319 +      end    
1320 +      item
1321 +        Name = 'SEC$PASSWORD'
1322 +        DataType = ftString
1323 +        Precision = -1
1324 +        Size = 32
1325 +      end    
1326 +      item
1327 +        Name = 'SEC$ADMIN'
1328 +        DataType = ftBoolean
1329 +        Precision = -1
1330 +      end    
1331 +      item
1332 +        Name = 'SEC$PLUGIN'
1333 +        DataType = ftString
1334 +        Size = 21
1335 +      end    
1336 +      item
1337 +        Name = 'SEC$ACTIVE'
1338 +        DataType = ftBoolean
1339 +      end    
1340 +      item
1341 +        Name = 'LOGGEDIN'
1342 +        DataType = ftBoolean
1343 +      end    
1344 +      item
1345 +        Name = 'DBCREATOR'
1346 +        DataType = ftBoolean
1347 +      end>
1348 +    AfterOpen = LegacyUserListAfterOpen
1349 +    BeforeClose = LegacyUserListBeforeClose
1350 +    AfterInsert = UserListAfterInsert
1351 +    AfterPost = LegacyUserListAfterPost
1352 +    Source = IBSecurityService1
1353 +    left = 167
1354 +    top = 438
1355 +  end
1356 +  object InLimboList: TIBXServicesLimboTransactionsList
1357 +    FieldDefs = <    
1358 +      item
1359 +        Name = 'TransactionID'
1360 +        DataType = ftInteger
1361 +        Precision = -1
1362 +      end    
1363 +      item
1364 +        Name = 'TransactionType'
1365 +        DataType = ftString
1366 +        Precision = -1
1367 +        Size = 16
1368 +      end    
1369 +      item
1370 +        Name = 'HostSite'
1371 +        DataType = ftString
1372 +        Precision = -1
1373 +        Size = 256
1374 +      end    
1375 +      item
1376 +        Name = 'RemoteSite'
1377 +        DataType = ftString
1378 +        Precision = -1
1379 +        Size = 256
1380 +      end    
1381 +      item
1382 +        Name = 'DatabasePath'
1383 +        DataType = ftString
1384 +        Precision = -1
1385 +        Size = 256
1386 +      end    
1387 +      item
1388 +        Name = 'State'
1389 +        DataType = ftString
1390 +        Precision = -1
1391 +        Size = 32
1392 +      end    
1393 +      item
1394 +        Name = 'RecommendedAction'
1395 +        DataType = ftString
1396 +        Precision = -1
1397 +        Size = 32
1398 +      end    
1399 +      item
1400 +        Name = 'RequestedAction'
1401 +        DataType = ftString
1402 +        Precision = -1
1403 +        Size = 32
1404 +      end>
1405 +    Source = IBLimboTrans
1406 +    left = 296
1407 +    top = 496
1408 +  end
1409 +  object IBLimboTrans: TIBXLimboTransactionResolutionService
1410 +    ServicesConnection = IBXServicesConnection1
1411 +    TraceFlags = []
1412 +    GlobalAction = CommitGlobal
1413 +    left = 176
1414 +    top = 496
1415 +  end
1416   end

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines