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 266 by tony, Wed Dec 26 18:34:32 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    object IBDatabase1: TIBDatabase
# Line 22 | Line 22 | object DatabaseData: TDatabaseData
22      IdleTimer = 0
23      TraceFlags = []
24      UseDefaultSystemCodePage = False
25 +    WireCompression = True
26      left = 40
27      top = 24
28    end
# Line 57 | Line 58 | object DatabaseData: TDatabaseData
58      BeforeClose = DatabaseQueryBeforeClose
59      BufferChunks = 1000
60      CachedUpdates = False
61 +    EnableStatistics = False
62      GenerateParamNames = False
63      GeneratorField.ApplyOnEvent = gaeOnNewRecord
64 +    MasterDetailDelay = 0
65      SQL.Strings = (
66        'SELECT * FROM RDB$DATABASE, MON$DATABASE'
67      )
# Line 76 | Line 79 | object DatabaseData: TDatabaseData
79      AutoCommit = acCommitRetaining
80      BufferChunks = 1000
81      CachedUpdates = False
82 +    EnableStatistics = False
83      GenerateParamNames = False
84      GeneratorField.ApplyOnEvent = gaeOnNewRecord
85 +    MasterDetailDelay = 0
86      SQL.Strings = (
87        'Select Trim(A.RDB$CHARACTER_SET_NAME)   as RDB$CHARACTER_SET_NAME'
88        ' From RDB$DATABASE A'
# Line 95 | Line 100 | object DatabaseData: TDatabaseData
100      OnCalcFields = ShadowFilesCalcFields
101      BufferChunks = 1000
102      CachedUpdates = False
103 +    EnableStatistics = False
104      GenerateParamNames = False
105      GeneratorField.ApplyOnEvent = gaeOnNewRecord
106 +    MasterDetailDelay = 0
107      SQL.Strings = (
108        'Select * From RDB$Files Where RDB$Shadow_Number <> 0 '
109        'Order by RDB$Shadow_Number, RDB$FILE_SEQUENCE'
# Line 181 | Line 188 | object DatabaseData: TDatabaseData
188      Transaction = CurrentTransaction
189      BufferChunks = 1000
190      CachedUpdates = False
191 +    EnableStatistics = False
192      GenerateParamNames = False
193      GeneratorField.ApplyOnEvent = gaeOnNewRecord
194 +    MasterDetailDelay = 0
195      SQL.Strings = (
196        'Select count(*) as Mappings'
197        'From SEC$GLOBAL_AUTH_MAPPING A'
# Line 199 | Line 208 | object DatabaseData: TDatabaseData
208      Transaction = CurrentTransaction
209      BufferChunks = 1000
210      CachedUpdates = False
211 +    EnableStatistics = False
212      GenerateParamNames = False
213      GeneratorField.ApplyOnEvent = gaeOnNewRecord
214 +    MasterDetailDelay = 0
215      SQL.Strings = (
216        'Select trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME'
217        ' From'
# Line 218 | Line 229 | object DatabaseData: TDatabaseData
229      Transaction = CurrentTransaction
230      BufferChunks = 1000
231      CachedUpdates = False
232 +    EnableStatistics = False
233      GenerateParamNames = False
234      GeneratorField.ApplyOnEvent = gaeOnNewRecord
235 +    MasterDetailDelay = 0
236      SQL.Strings = (
237        'Select * From RDB$Files Where RDB$Shadow_Number is null or RDB$Shadow_Number = 0 '
238        'Order by RDB$FILE_SEQUENCE'
# Line 249 | Line 262 | object DatabaseData: TDatabaseData
262      Transaction = CurrentTransaction
263      BufferChunks = 1000
264      CachedUpdates = False
265 +    EnableStatistics = False
266      GenerateParamNames = False
267      GeneratorField.ApplyOnEvent = gaeOnNewRecord
268 +    MasterDetailDelay = 0
269      SQL.Strings = (
270        'Select * from MON$ATTACHMENTS'
271        'Where MON$ATTACHMENT_ID = CURRENT_CONNECTION'
# Line 260 | Line 275 | object DatabaseData: TDatabaseData
275      left = 544
276      top = 112
277    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
278    object TableNameLookup: TIBQuery
279      AllowAutoActivateTransaction = False
280      Database = IBDatabase1
281      Transaction = CurrentTransaction
282      BufferChunks = 1000
283      CachedUpdates = False
284 +    EnableStatistics = False
285      GenerateParamNames = False
286      GeneratorField.ApplyOnEvent = gaeOnNewRecord
287 +    MasterDetailDelay = 0
288      SQL.Strings = (
289        'SELECT r.RDB$RELATION_ID,'
290        '    trim(r.RDB$RELATION_NAME) as RDB$RELATION_NAME'
# Line 293 | Line 295 | object DatabaseData: TDatabaseData
295      left = 288
296      top = 283
297    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
298    object UserList: TIBQuery
299      AllowAutoActivateTransaction = False
300      Database = IBDatabase1
# Line 318 | Line 306 | object DatabaseData: TDatabaseData
306      BeforeClose = UserListBeforeClose
307      BufferChunks = 1000
308      CachedUpdates = False
309 +    EnableStatistics = False
310      GenerateParamNames = False
311      GeneratorField.ApplyOnEvent = gaeOnNewRecord
312 +    MasterDetailDelay = 0
313      SQL.Strings = (
314        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
315 <      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as UserName, A.SEC$MIDDLE_NAME,'
315 >      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
316        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
317 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
317 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
318        'case when Count(B.MON$ATTACHMENT_ID) > 0 then true else false end as LoggedIn,'
319        'case When C.SEC$USER is not null then true else false end as DBCreator'
320        'From SEC$USERS A'
# Line 400 | Line 390 | object DatabaseData: TDatabaseData
390        Required = False
391        Size = 32
392      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
393      object UserListLOGGEDIN: TBooleanField
394        FieldKind = fkData
395        FieldName = 'LOGGEDIN'
396 <      Index = 8
396 >      Index = 6
397        LookupCache = False
398        ProviderFlags = [pfInUpdate, pfInWhere]
399        ReadOnly = False
# Line 433 | Line 403 | object DatabaseData: TDatabaseData
403      object UserListCURRENT_CONNECTION: TIBLargeIntField
404        FieldKind = fkData
405        FieldName = 'CURRENT_CONNECTION'
406 <      Index = 9
406 >      Index = 7
407        LookupCache = False
408        ProviderFlags = [pfInUpdate, pfInWhere]
409        ReadOnly = False
# Line 442 | Line 412 | object DatabaseData: TDatabaseData
412      object UserListDBCREATOR: TBooleanField
413        FieldKind = fkData
414        FieldName = 'DBCREATOR'
415 <      Index = 10
415 >      Index = 8
416        LookupCache = False
417        ProviderFlags = [pfInUpdate, pfInWhere]
418        ReadOnly = False
# Line 452 | Line 422 | object DatabaseData: TDatabaseData
422      object UserListUSERID: TLongintField
423        FieldKind = fkCalculated
424        FieldName = 'USERID'
425 <      Index = 11
425 >      Index = 9
426        LookupCache = False
427        ProviderFlags = [pfInUpdate, pfInWhere]
428        ReadOnly = False
# Line 461 | Line 431 | object DatabaseData: TDatabaseData
431      object UserListGROUPID: TLongintField
432        FieldKind = fkCalculated
433        FieldName = 'GROUPID'
434 +      Index = 10
435 +      LookupCache = False
436 +      ProviderFlags = [pfInUpdate, pfInWhere]
437 +      ReadOnly = False
438 +      Required = False
439 +    end
440 +    object UserListSECPASSWORD: TIBStringField
441 +      FieldKind = fkData
442 +      FieldName = 'SEC$PASSWORD'
443 +      Index = 11
444 +      LookupCache = False
445 +      ProviderFlags = [pfInUpdate, pfInWhere]
446 +      ReadOnly = False
447 +      Required = False
448 +      Size = 32
449 +    end
450 +    object UserListSECUSER_NAME: TIBStringField
451 +      FieldKind = fkData
452 +      FieldName = 'SEC$USER_NAME'
453        Index = 12
454        LookupCache = False
455        ProviderFlags = [pfInUpdate, pfInWhere]
456        ReadOnly = False
457        Required = False
458 +      Size = 31
459      end
460    end
461    object UpdateUsers: TIBUpdate
462      RefreshSQL.Strings = (
463        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
464 <      'A.SEC$ACTIVE, A.SEC$USER_NAME as UserName, A.SEC$MIDDLE_NAME,'
464 >      'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
465        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
466 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
466 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
467        'case when B.MON$ATTACHMENT_ID is not null then true else false end as LoggedIn,'
468        'case When C.SEC$USER is not null then true else false end as DBCreator'
469        'From SEC$USERS A'
470        'Left Outer Join MON$ATTACHMENTS B'
471        'On A.SEC$USER_NAME = B.MON$USER'
472        'Left Outer Join SEC$DB_CREATORS  C on C.SEC$USER = A.SEC$USER_NAME'
473 <      'Where  A.SEC$USER_NAME = :UserName'
473 >      'Where  A.SEC$USER_NAME = :SEC$USER_NAME'
474      )
475      OnApplyUpdates = UpdateUsersApplyUpdates
476      left = 544
# Line 494 | Line 484 | object DatabaseData: TDatabaseData
484      BufferChunks = 1000
485      CachedUpdates = False
486      DataSource = UserListSource
487 +    EnableStatistics = False
488      GenerateParamNames = False
489      GeneratorField.ApplyOnEvent = gaeOnNewRecord
490 +    MasterDetailDelay = 0
491      SQL.Strings = (
492        'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG, '
493 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
493 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
494        'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
495        'FROM RDB$ROLES r'
496        'Left Outer JOIN ('
497        'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER  From RDB$USER_PRIVILEGES '
498 <      'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
498 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
499        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME '
500        ''
501      )
502      Params = <    
503        item
504          DataType = ftUnknown
505 <        Name = 'USERNAME'
505 >        Name = 'SEC$USER_NAME'
506          ParamType = ptInput
507        end>
508      UpdateObject = UpdateUserRoles
# Line 520 | Line 512 | object DatabaseData: TDatabaseData
512      ParamData = <    
513        item
514          DataType = ftUnknown
515 <        Name = 'USERNAME'
515 >        Name = 'SEC$USER_NAME'
516          ParamType = ptInput
517        end>
518    end
519    object UpdateUserRoles: TIBUpdate
520      RefreshSQL.Strings = (
521        'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG,'
522 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
522 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
523        'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
524        'FROM RDB$ROLES r'
525        'Left Outer JOIN ('
526        'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER  From RDB$USER_PRIVILEGES'
527 <      'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
527 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
528        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME'
529        'Where  r.RDB$ROLE_NAME = :RDB$ROLE_NAME'
530      )
# Line 549 | Line 541 | object DatabaseData: TDatabaseData
541      AllowAutoActivateTransaction = False
542      Database = IBDatabase1
543      Transaction = CurrentTransaction
552    AfterDelete = UserListAfterPost
544      AfterInsert = UserTagsAfterInsert
554    AfterPost = UserListAfterPost
545      BufferChunks = 1000
546      CachedUpdates = False
547      DataSource = UserListSource
548 +    EnableStatistics = False
549      GenerateParamNames = False
550      GeneratorField.ApplyOnEvent = gaeOnNewRecord
551 +    MasterDetailDelay = 0
552      SQL.Strings = (
553        'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE'
554        'From'
555        'SEC$USER_ATTRIBUTES  A'
556 <      'Where SEC$USER_NAME = :UserName'
556 >      'Where SEC$USER_NAME = :SEC$USER_NAME'
557      )
558      Params = <    
559        item
560          DataType = ftUnknown
561 <        Name = 'UserName'
561 >        Name = 'SEC$USER_NAME'
562          ParamType = ptInput
563        end>
564      UpdateObject = TagsUpdate
# Line 576 | Line 568 | object DatabaseData: TDatabaseData
568      ParamData = <    
569        item
570          DataType = ftUnknown
571 <        Name = 'UserName'
571 >        Name = 'SEC$USER_NAME'
572          ParamType = ptInput
573        end>
574    end
# Line 596 | Line 588 | object DatabaseData: TDatabaseData
588      left = 304
589      top = 360
590    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
591    object Attachments: TIBQuery
592      AllowAutoActivateTransaction = False
593      Database = IBDatabase1
# Line 682 | Line 597 | object DatabaseData: TDatabaseData
597      BeforeOpen = AttachmentsBeforeOpen
598      BufferChunks = 1000
599      CachedUpdates = False
600 +    EnableStatistics = False
601      GenerateParamNames = False
602      GeneratorField.ApplyOnEvent = gaeOnNewRecord
603 +    MasterDetailDelay = 0
604      SQL.Strings = (
605        'SELECT *'
606        'FROM MON$ATTACHMENTS r'
# Line 1001 | Line 918 | object DatabaseData: TDatabaseData
918      left = 376
919      top = 432
920    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
921    object AdminUserQuery: TIBSQL
922      Database = IBDatabase1
923      GenerateParamNames = False
# Line 1079 | Line 937 | object DatabaseData: TDatabaseData
937      Transaction = CurrentTransaction
938      BufferChunks = 1000
939      CachedUpdates = False
940 +    EnableStatistics = False
941      GenerateParamNames = False
942      GeneratorField.ApplyOnEvent = gaeOnNewRecord
943 +    MasterDetailDelay = 0
944      SQL.Strings = (
945        'Select Trim(A.RDB$RELATION_NAME) as RDB$RELATION_NAME, 1 as Selected'
946        ' From RDB$RELATIONS A'
# Line 1107 | Line 967 | object DatabaseData: TDatabaseData
967      Transaction = CurrentTransaction
968      BufferChunks = 1000
969      CachedUpdates = False
970 +    EnableStatistics = False
971      GenerateParamNames = False
972      GeneratorField.ApplyOnEvent = gaeOnNewRecord
973 +    MasterDetailDelay = 0
974      SQL.Strings = (
975        'SELECT r.RDB$DB_KEY, cast(''Local'' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,'
976        '    Case'
# Line 1161 | Line 1023 | object DatabaseData: TDatabaseData
1023      OnCalcFields = AccessRightsCalcFields
1024      BufferChunks = 1000
1025      CachedUpdates = False
1026 +    EnableStatistics = False
1027      GenerateParamNames = False
1028      GeneratorField.ApplyOnEvent = gaeOnNewRecord
1029 +    MasterDetailDelay = 0
1030      SQL.Strings = (
1031        'with recursive AccessRight as ('
1032        'Select UP.RDB$USER as SUBJECT_NAME,'
# Line 1292 | Line 1156 | object DatabaseData: TDatabaseData
1156      BeforeOpen = SubjectAccessRightsBeforeOpen
1157      BufferChunks = 1000
1158      CachedUpdates = False
1159 +    EnableStatistics = False
1160      GenerateParamNames = False
1161      GeneratorField.ApplyOnEvent = gaeOnNewRecord
1162 +    MasterDetailDelay = 0
1163      SQL.Strings = (
1164        'Select UP.RDB$USER as SUBJECT_NAME,'
1165        '  UP.RDB$USER_TYPE as SUBJECT_TYPE,'
# Line 1353 | Line 1219 | object DatabaseData: TDatabaseData
1219          ParamType = ptInput
1220        end>
1221    end
1222 +  object IBXServicesConnection1: TIBXServicesConnection
1223 +    Connected = False
1224 +    OnLogin = IBXServicesConnection1Login
1225 +    Params.Strings = (
1226 +      'sql_role_name=RDB$ADMIN'
1227 +    )
1228 +    TraceFlags = []
1229 +    WireCompression = False
1230 +    left = 640
1231 +    top = 48
1232 +  end
1233 +  object IBStatisticalService1: TIBXStatisticalService
1234 +    ServicesConnection = IBXServicesConnection1
1235 +    TraceFlags = []
1236 +    Options = [HeaderPages]
1237 +    left = 48
1238 +    top = 287
1239 +  end
1240 +  object IBConfigService1: TIBXConfigService
1241 +    ServicesConnection = IBXServicesConnection1
1242 +    TraceFlags = []
1243 +    left = 168
1244 +    top = 283
1245 +  end
1246 +  object IBServerProperties1: TIBXServerProperties
1247 +    ServicesConnection = IBXServicesConnection1
1248 +    TraceFlags = []
1249 +    left = 40
1250 +    top = 365
1251 +  end
1252 +  object IBLogService1: TIBXLogService
1253 +    ServicesConnection = IBXServicesConnection1
1254 +    TraceFlags = []
1255 +    left = 168
1256 +    top = 365
1257 +  end
1258 +  object IBSecurityService1: TIBXSecurityService
1259 +    ServicesConnection = IBXServicesConnection1
1260 +    TraceFlags = []
1261 +    UserID = 0
1262 +    GroupID = 0
1263 +    AdminRole = False
1264 +    left = 36
1265 +    top = 437
1266 +  end
1267 +  object IBValidationService1: TIBXValidationService
1268 +    ServicesConnection = IBXServicesConnection1
1269 +    TraceFlags = []
1270 +    OnGetNextLine = IBValidationService1GetNextLine
1271 +    Options = [ValidateFull]
1272 +    left = 632
1273 +    top = 416
1274 +  end
1275 +  object IBOnlineValidationService1: TIBXOnlineValidationService
1276 +    ServicesConnection = IBXServicesConnection1
1277 +    TraceFlags = []
1278 +    OnGetNextLine = IBValidationService1GetNextLine
1279 +    left = 40
1280 +    top = 503
1281 +  end
1282 +  object LegacyUserList: TIBXServicesUserList
1283 +    FieldDefs = <    
1284 +      item
1285 +        Name = 'UserID'
1286 +        DataType = ftInteger
1287 +        Precision = -1
1288 +      end    
1289 +      item
1290 +        Name = 'GroupID'
1291 +        DataType = ftInteger
1292 +        Precision = -1
1293 +      end    
1294 +      item
1295 +        Name = 'SEC$USER_NAME'
1296 +        DataType = ftString
1297 +        Precision = -1
1298 +        Size = 31
1299 +      end    
1300 +      item
1301 +        Name = 'SEC$FIRST_NAME'
1302 +        DataType = ftString
1303 +        Precision = -1
1304 +        Size = 32
1305 +      end    
1306 +      item
1307 +        Name = 'SEC$MIDDLE_NAME'
1308 +        DataType = ftString
1309 +        Precision = -1
1310 +        Size = 32
1311 +      end    
1312 +      item
1313 +        Name = 'SEC$LAST_NAME'
1314 +        DataType = ftString
1315 +        Precision = -1
1316 +        Size = 32
1317 +      end    
1318 +      item
1319 +        Name = 'SEC$PASSWORD'
1320 +        DataType = ftString
1321 +        Precision = -1
1322 +        Size = 32
1323 +      end    
1324 +      item
1325 +        Name = 'SEC$ADMIN'
1326 +        DataType = ftBoolean
1327 +        Precision = -1
1328 +      end    
1329 +      item
1330 +        Name = 'SEC$PLUGIN'
1331 +        DataType = ftString
1332 +        Size = 21
1333 +      end    
1334 +      item
1335 +        Name = 'SEC$ACTIVE'
1336 +        DataType = ftBoolean
1337 +      end    
1338 +      item
1339 +        Name = 'LOGGEDIN'
1340 +        DataType = ftBoolean
1341 +      end    
1342 +      item
1343 +        Name = 'DBCREATOR'
1344 +        DataType = ftBoolean
1345 +      end>
1346 +    AfterOpen = LegacyUserListAfterOpen
1347 +    BeforeClose = LegacyUserListBeforeClose
1348 +    AfterInsert = UserListAfterInsert
1349 +    AfterPost = LegacyUserListAfterPost
1350 +    Source = IBSecurityService1
1351 +    left = 167
1352 +    top = 438
1353 +  end
1354 +  object InLimboList: TIBXServicesLimboTransactionsList
1355 +    FieldDefs = <    
1356 +      item
1357 +        Name = 'TransactionID'
1358 +        DataType = ftInteger
1359 +        Precision = -1
1360 +      end    
1361 +      item
1362 +        Name = 'TransactionType'
1363 +        DataType = ftString
1364 +        Precision = -1
1365 +        Size = 16
1366 +      end    
1367 +      item
1368 +        Name = 'HostSite'
1369 +        DataType = ftString
1370 +        Precision = -1
1371 +        Size = 256
1372 +      end    
1373 +      item
1374 +        Name = 'RemoteSite'
1375 +        DataType = ftString
1376 +        Precision = -1
1377 +        Size = 256
1378 +      end    
1379 +      item
1380 +        Name = 'DatabasePath'
1381 +        DataType = ftString
1382 +        Precision = -1
1383 +        Size = 256
1384 +      end    
1385 +      item
1386 +        Name = 'State'
1387 +        DataType = ftString
1388 +        Precision = -1
1389 +        Size = 32
1390 +      end    
1391 +      item
1392 +        Name = 'RecommendedAction'
1393 +        DataType = ftString
1394 +        Precision = -1
1395 +        Size = 32
1396 +      end    
1397 +      item
1398 +        Name = 'RequestedAction'
1399 +        DataType = ftString
1400 +        Precision = -1
1401 +        Size = 32
1402 +      end>
1403 +    Source = IBLimboTrans
1404 +    left = 296
1405 +    top = 496
1406 +  end
1407 +  object IBLimboTrans: TIBXLimboTransactionResolutionService
1408 +    ServicesConnection = IBXServicesConnection1
1409 +    TraceFlags = []
1410 +    GlobalAction = CommitGlobal
1411 +    left = 176
1412 +    top = 496
1413 +  end
1414   end

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines