ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/DBAdmin/DataModule.lfm
Revision: 158
Committed: Thu Mar 1 11:23:33 2018 UTC (6 years ago) by tony
File size: 41419 byte(s)
Log Message:
Repository resync

File Contents

# User Rev Content
1 tony 158 object DatabaseData: TDatabaseData
2     OldCreateOrder = False
3     Height = 552
4     HorizontalOffset = 662
5     VerticalOffset = 400
6     Width = 730
7     object IBDatabase1: TIBDatabase
8     Connected = False
9     AfterConnect = IBDatabase1AfterConnect
10     AfterDisconnect = IBDatabase1AfterDisconnect
11     BeforeDisconnect = IBDatabase1BeforeDisconnect
12     OnLogin = IBDatabase1Login
13     CreateIfNotExists = False
14     AllowStreamedConnected = False
15     DatabaseName = 'employee'
16     Params.Strings = (
17     'lc_ctype=UTF8'
18     'user_name=SYSDBA'
19     'sql_role_name=RDB$ADMIN'
20     )
21     DefaultTransaction = CurrentTransaction
22     IdleTimer = 0
23     TraceFlags = []
24     UseDefaultSystemCodePage = False
25     left = 40
26     top = 24
27     end
28     object CurrentTransaction: TIBTransaction
29     Active = False
30     DefaultDatabase = IBDatabase1
31     Params.Strings = (
32     'read_committed'
33     'rec_version'
34     'nowait'
35     )
36     AfterTransactionEnd = CurrentTransactionAfterTransactionEnd
37     left = 168
38     top = 24
39     end
40     object ExecDDL: TIBSQL
41     Database = IBDatabase1
42     GenerateParamNames = False
43     UniqueParamNames = False
44     ParamCheck = True
45     SQL.Strings = (
46     ''
47     )
48     Transaction = CurrentTransaction
49     left = 152
50     top = 208
51     end
52     object DatabaseQuery: TIBQuery
53     AllowAutoActivateTransaction = False
54     Database = IBDatabase1
55     Transaction = CurrentTransaction
56     AfterOpen = DatabaseQueryAfterOpen
57     BeforeClose = DatabaseQueryBeforeClose
58     BufferChunks = 1000
59     CachedUpdates = False
60     GenerateParamNames = False
61     GeneratorField.ApplyOnEvent = gaeOnNewRecord
62     SQL.Strings = (
63     'SELECT * FROM RDB$DATABASE, MON$DATABASE'
64     )
65     Params = <>
66     DataSetCloseAction = dcSaveChanges
67     left = 288
68     top = 24
69     end
70     object DBCharSet: TIBQuery
71     AllowAutoActivateTransaction = False
72     Database = IBDatabase1
73     Transaction = CurrentTransaction
74     AfterClose = DBCharSetAfterClose
75     BeforeOpen = DBCharSetBeforeOpen
76     AutoCommit = acCommitRetaining
77     BufferChunks = 1000
78     CachedUpdates = False
79     GenerateParamNames = False
80     GeneratorField.ApplyOnEvent = gaeOnNewRecord
81     SQL.Strings = (
82     'Select Trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME'
83     ' From RDB$DATABASE A'
84     )
85     Params = <>
86     UpdateObject = UpdateCharSet
87     DataSetCloseAction = dcSaveChanges
88     left = 424
89     top = 32
90     end
91     object ShadowFiles: TIBQuery
92     AllowAutoActivateTransaction = False
93     Database = IBDatabase1
94     Transaction = CurrentTransaction
95     OnCalcFields = ShadowFilesCalcFields
96     BufferChunks = 1000
97     CachedUpdates = False
98     GenerateParamNames = False
99     GeneratorField.ApplyOnEvent = gaeOnNewRecord
100     SQL.Strings = (
101     'Select * From RDB$Files Where RDB$Shadow_Number <> 0 '
102     'Order by RDB$Shadow_Number, RDB$FILE_SEQUENCE'
103     )
104     Params = <>
105     DataSetCloseAction = dcDiscardChanges
106     left = 32
107     top = 208
108     object ShadowFilesRDBFILE_NAME: TIBStringField
109     FieldKind = fkData
110     FieldName = 'RDB$FILE_NAME'
111     Index = 0
112     LookupCache = False
113     ProviderFlags = [pfInUpdate, pfInWhere]
114     ReadOnly = False
115     Required = False
116     Size = 253
117     end
118     object ShadowFilesRDBFILE_SEQUENCE: TSmallintField
119     FieldKind = fkData
120     FieldName = 'RDB$FILE_SEQUENCE'
121     Index = 1
122     LookupCache = False
123     Origin = 'RDB$FILES.RDB$FILE_SEQUENCE'
124     ProviderFlags = [pfInUpdate, pfInWhere]
125     ReadOnly = False
126     Required = False
127     end
128     object ShadowFilesRDBFILE_START: TIntegerField
129     FieldKind = fkData
130     FieldName = 'RDB$FILE_START'
131     Index = 2
132     LookupCache = False
133     Origin = 'RDB$FILES.RDB$FILE_START'
134     ProviderFlags = [pfInUpdate, pfInWhere]
135     ReadOnly = False
136     Required = False
137     end
138     object ShadowFilesRDBFILE_LENGTH: TIntegerField
139     FieldKind = fkData
140     FieldName = 'RDB$FILE_LENGTH'
141     Index = 3
142     LookupCache = False
143     Origin = 'RDB$FILES.RDB$FILE_LENGTH'
144     ProviderFlags = [pfInUpdate, pfInWhere]
145     ReadOnly = False
146     Required = False
147     end
148     object ShadowFilesRDBFILE_FLAGS: TSmallintField
149     FieldKind = fkData
150     FieldName = 'RDB$FILE_FLAGS'
151     Index = 4
152     LookupCache = False
153     Origin = 'RDB$FILES.RDB$FILE_FLAGS'
154     ProviderFlags = [pfInUpdate, pfInWhere]
155     ReadOnly = False
156     Required = False
157     end
158     object ShadowFilesRDBSHADOW_NUMBER: TSmallintField
159     FieldKind = fkData
160     FieldName = 'RDB$SHADOW_NUMBER'
161     Index = 5
162     LookupCache = False
163     Origin = 'RDB$FILES.RDB$SHADOW_NUMBER'
164     ProviderFlags = [pfInUpdate, pfInWhere]
165     ReadOnly = False
166     Required = False
167     end
168     object ShadowFilesFileMode: TStringField
169     FieldKind = fkCalculated
170     FieldName = 'FileMode'
171     Index = 6
172     LookupCache = False
173     ProviderFlags = [pfInUpdate, pfInWhere]
174     ReadOnly = False
175     Required = False
176     end
177     end
178     object SecGlobalAuth: TIBQuery
179     AllowAutoActivateTransaction = False
180     Database = IBDatabase1
181     Transaction = CurrentTransaction
182     BufferChunks = 1000
183     CachedUpdates = False
184     GenerateParamNames = False
185     GeneratorField.ApplyOnEvent = gaeOnNewRecord
186     SQL.Strings = (
187     'Select count(*) as Mappings'
188     'From SEC$GLOBAL_AUTH_MAPPING A'
189     'Where SEC$MAP_NAME = ''AutoAdminImplementationMapping'''
190     )
191     Params = <>
192     DataSetCloseAction = dcDiscardChanges
193     left = 288
194     top = 112
195     end
196     object CharSetLookup: TIBQuery
197     AllowAutoActivateTransaction = False
198     Database = IBDatabase1
199     Transaction = CurrentTransaction
200     BufferChunks = 1000
201     CachedUpdates = False
202     GenerateParamNames = False
203     GeneratorField.ApplyOnEvent = gaeOnNewRecord
204     SQL.Strings = (
205     'Select trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME'
206     ' From'
207     'RDB$CHARACTER_SETS A order by 1'
208     ''
209     )
210     Params = <>
211     DataSetCloseAction = dcDiscardChanges
212     left = 160
213     top = 104
214     end
215     object DBSecFiles: TIBQuery
216     AllowAutoActivateTransaction = False
217     Database = IBDatabase1
218     Transaction = CurrentTransaction
219     BufferChunks = 1000
220     CachedUpdates = False
221     GenerateParamNames = False
222     GeneratorField.ApplyOnEvent = gaeOnNewRecord
223     SQL.Strings = (
224     'Select * From RDB$Files Where RDB$Shadow_Number is null or RDB$Shadow_Number = 0 '
225     'Order by RDB$FILE_SEQUENCE'
226     )
227     Params = <>
228     DataSetCloseAction = dcDiscardChanges
229     left = 32
230     top = 104
231     end
232     object UpdateCharSet: TIBUpdate
233     RefreshSQL.Strings = (
234     'Select Trim(A.RDB$CHARACTER_SET_NAME) as RDB$CHARACTER_SET_NAME'
235     ' From RDB$DATABASE A'
236     )
237     OnApplyUpdates = UpdateCharSetApplyUpdates
238     left = 424
239     top = 104
240     end
241     object IBDatabaseInfo: TIBDatabaseInfo
242     Database = IBDatabase1
243     left = 280
244     top = 200
245     end
246     object AttmtQuery: TIBQuery
247     AllowAutoActivateTransaction = False
248     Database = IBDatabase1
249     Transaction = CurrentTransaction
250     BufferChunks = 1000
251     CachedUpdates = False
252     GenerateParamNames = False
253     GeneratorField.ApplyOnEvent = gaeOnNewRecord
254     SQL.Strings = (
255     'Select * from MON$ATTACHMENTS'
256     'Where MON$ATTACHMENT_ID = CURRENT_CONNECTION'
257     )
258     Params = <>
259     DataSetCloseAction = dcDiscardChanges
260     left = 544
261     top = 112
262     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     GenerateParamNames = False
285     GeneratorField.ApplyOnEvent = gaeOnNewRecord
286     SQL.Strings = (
287     'SELECT r.RDB$RELATION_ID,'
288     ' trim(r.RDB$RELATION_NAME) as RDB$RELATION_NAME'
289     'FROM RDB$RELATIONS r'
290     )
291     Params = <>
292     DataSetCloseAction = dcDiscardChanges
293     left = 288
294     top = 283
295     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
310     object UserList: TIBQuery
311     AllowAutoActivateTransaction = False
312     Database = IBDatabase1
313     Transaction = CurrentTransaction
314     AfterInsert = UserListAfterInsert
315     AfterOpen = UserListAfterOpen
316     AfterPost = UserListAfterPost
317     AfterScroll = UserListAfterScroll
318     BeforeClose = UserListBeforeClose
319     BufferChunks = 1000
320     CachedUpdates = False
321     GenerateParamNames = False
322     GeneratorField.ApplyOnEvent = gaeOnNewRecord
323     SQL.Strings = (
324     'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
325     'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as UserName, A.SEC$MIDDLE_NAME,'
326     'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
327     'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
328     'case when Count(B.MON$ATTACHMENT_ID) > 0 then true else false end as LoggedIn,'
329     'case When C.SEC$USER is not null then true else false end as DBCreator'
330     'From SEC$USERS A'
331     'Left Outer Join MON$ATTACHMENTS B'
332     'On A.SEC$USER_NAME = B.MON$USER'
333     'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME'
334     'Group By A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
335     'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
336     'A.SEC$FIRST_NAME, A.SEC$LAST_NAME, C.SEC$USER'
337     )
338     Params = <>
339     UpdateObject = UpdateUsers
340     DataSetCloseAction = dcSaveChanges
341     left = 416
342     top = 352
343     object UserListSECPLUGIN: TIBStringField
344     FieldKind = fkData
345     FieldName = 'SEC$PLUGIN'
346     Index = 0
347     LookupCache = False
348     ProviderFlags = [pfInUpdate, pfInWhere]
349     ReadOnly = True
350     Required = False
351     Size = 31
352     end
353     object UserListSECADMIN: TBooleanField
354     FieldKind = fkData
355     FieldName = 'SEC$ADMIN'
356     Index = 1
357     LookupCache = False
358     ProviderFlags = [pfInUpdate, pfInWhere]
359     ReadOnly = False
360     Required = False
361     DisplayValues = 'True;False'
362     end
363     object UserListSECACTIVE: TBooleanField
364     FieldKind = fkData
365     FieldName = 'SEC$ACTIVE'
366     Index = 2
367     LookupCache = False
368     ProviderFlags = [pfInUpdate, pfInWhere]
369     ReadOnly = False
370     Required = False
371     DisplayValues = 'True;False'
372     end
373     object UserListSECMIDDLE_NAME: TIBStringField
374     FieldKind = fkData
375     FieldName = 'SEC$MIDDLE_NAME'
376     Index = 3
377     LookupCache = False
378     ProviderFlags = [pfInUpdate, pfInWhere]
379     ReadOnly = False
380     Required = False
381     Size = 32
382     end
383     object UserListSECFIRST_NAME: TIBStringField
384     FieldKind = fkData
385     FieldName = 'SEC$FIRST_NAME'
386     Index = 4
387     LookupCache = False
388     ProviderFlags = [pfInUpdate, pfInWhere]
389     ReadOnly = False
390     Required = False
391     Size = 32
392     end
393     object UserListSECLAST_NAME: TIBStringField
394     FieldKind = fkData
395     FieldName = 'SEC$LAST_NAME'
396     Index = 5
397     LookupCache = False
398     ProviderFlags = [pfInUpdate, pfInWhere]
399     ReadOnly = False
400     Required = False
401     Size = 32
402     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
423     object UserListLOGGEDIN: TBooleanField
424     FieldKind = fkData
425     FieldName = 'LOGGEDIN'
426     Index = 8
427     LookupCache = False
428     ProviderFlags = [pfInUpdate, pfInWhere]
429     ReadOnly = False
430     Required = True
431     DisplayValues = 'True;False'
432     end
433     object UserListCURRENT_CONNECTION: TIBLargeIntField
434     FieldKind = fkData
435     FieldName = 'CURRENT_CONNECTION'
436     Index = 9
437     LookupCache = False
438     ProviderFlags = [pfInUpdate, pfInWhere]
439     ReadOnly = False
440     Required = True
441     end
442     object UserListDBCREATOR: TBooleanField
443     FieldKind = fkData
444     FieldName = 'DBCREATOR'
445     Index = 10
446     LookupCache = False
447     ProviderFlags = [pfInUpdate, pfInWhere]
448     ReadOnly = False
449     Required = True
450     DisplayValues = 'True;False'
451     end
452     object UserListUSERID: TLongintField
453     FieldKind = fkCalculated
454     FieldName = 'USERID'
455     Index = 11
456     LookupCache = False
457     ProviderFlags = [pfInUpdate, pfInWhere]
458     ReadOnly = False
459     Required = False
460     end
461     object UserListGROUPID: TLongintField
462     FieldKind = fkCalculated
463     FieldName = 'GROUPID'
464     Index = 12
465     LookupCache = False
466     ProviderFlags = [pfInUpdate, pfInWhere]
467     ReadOnly = False
468     Required = False
469     end
470     end
471     object UpdateUsers: TIBUpdate
472     RefreshSQL.Strings = (
473     'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
474     'A.SEC$ACTIVE, A.SEC$USER_NAME as UserName, A.SEC$MIDDLE_NAME,'
475     'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
476     'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
477     'case when B.MON$ATTACHMENT_ID is not null then true else false end as LoggedIn,'
478     'case When C.SEC$USER is not null then true else false end as DBCreator'
479     'From SEC$USERS A'
480     'Left Outer Join MON$ATTACHMENTS B'
481     'On A.SEC$USER_NAME = B.MON$USER'
482     'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME'
483     'Where A.SEC$USER_NAME = :UserName'
484     )
485     OnApplyUpdates = UpdateUsersApplyUpdates
486     left = 544
487     top = 360
488     end
489     object RoleNameList: TIBQuery
490     AllowAutoActivateTransaction = False
491     Database = IBDatabase1
492     Transaction = CurrentTransaction
493     AutoCommit = acCommitRetaining
494     BufferChunks = 1000
495     CachedUpdates = False
496     DataSource = UserListSource
497     GenerateParamNames = False
498     GeneratorField.ApplyOnEvent = gaeOnNewRecord
499     SQL.Strings = (
500     'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG, '
501     'P.RDB$USER,RDB$PRIVILEGE, cast(:USERNAME as VARCHAR(32)) as USERNAME,'
502     'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
503     'FROM RDB$ROLES r'
504     'Left Outer JOIN ('
505     'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER From RDB$USER_PRIVILEGES '
506     'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
507     ') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME '
508     ''
509     )
510     Params = <
511     item
512     DataType = ftUnknown
513     Name = 'USERNAME'
514     ParamType = ptInput
515     end>
516     UpdateObject = UpdateUserRoles
517     DataSetCloseAction = dcSaveChanges
518     left = 424
519     top = 280
520     ParamData = <
521     item
522     DataType = ftUnknown
523     Name = 'USERNAME'
524     ParamType = ptInput
525     end>
526     end
527     object UpdateUserRoles: TIBUpdate
528     RefreshSQL.Strings = (
529     'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG,'
530     'P.RDB$USER,RDB$PRIVILEGE, cast(:USERNAME as VARCHAR(32)) as USERNAME,'
531     'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
532     'FROM RDB$ROLES r'
533     'Left Outer JOIN ('
534     'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER From RDB$USER_PRIVILEGES'
535     'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
536     ') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME'
537     'Where r.RDB$ROLE_NAME = :RDB$ROLE_NAME'
538     )
539     OnApplyUpdates = UpdateUserRolesApplyUpdates
540     left = 544
541     top = 288
542     end
543     object ApplicationProperties1: TApplicationProperties
544     OnException = ApplicationProperties1Exception
545     left = 528
546     top = 32
547     end
548     object UserTags: TIBQuery
549     AllowAutoActivateTransaction = False
550     Database = IBDatabase1
551     Transaction = CurrentTransaction
552     AfterDelete = UserListAfterPost
553     AfterInsert = UserTagsAfterInsert
554     AfterPost = UserListAfterPost
555     BufferChunks = 1000
556     CachedUpdates = False
557     DataSource = UserListSource
558     GenerateParamNames = False
559     GeneratorField.ApplyOnEvent = gaeOnNewRecord
560     SQL.Strings = (
561     'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE'
562     'From'
563     'SEC$USER_ATTRIBUTES A'
564     'Where SEC$USER_NAME = :UserName'
565     )
566     Params = <
567     item
568     DataType = ftUnknown
569     Name = 'UserName'
570     ParamType = ptInput
571     end>
572     UpdateObject = TagsUpdate
573     DataSetCloseAction = dcSaveChanges
574     left = 424
575     top = 192
576     ParamData = <
577     item
578     DataType = ftUnknown
579     Name = 'UserName'
580     ParamType = ptInput
581     end>
582     end
583     object TagsUpdate: TIBUpdate
584     RefreshSQL.Strings = (
585     'Select A.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE From '
586     'SEC$USER_ATTRIBUTES A'
587     'Where SEC$USER_NAME = :SEC$USER_NAME'
588     ' and A.SEC$KEY = :SEC$KEY'
589     )
590     OnApplyUpdates = TagsUpdateApplyUpdates
591     left = 536
592     top = 200
593     end
594     object UserListSource: TDataSource
595     DataSet = UserList
596     left = 304
597     top = 360
598     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
676     object Attachments: TIBQuery
677     AllowAutoActivateTransaction = False
678     Database = IBDatabase1
679     Transaction = CurrentTransaction
680     AfterDelete = AttachmentsAfterDelete
681     AfterOpen = AttachmentsAfterOpen
682     BeforeOpen = AttachmentsBeforeOpen
683     BufferChunks = 1000
684     CachedUpdates = False
685     GenerateParamNames = False
686     GeneratorField.ApplyOnEvent = gaeOnNewRecord
687     SQL.Strings = (
688     'SELECT *'
689     'FROM MON$ATTACHMENTS r'
690     'JOIN RDB$CHARACTER_SETS S On S.RDB$CHARACTER_SET_ID = r.MON$CHARACTER_SET_ID'
691     ''
692     )
693     Params = <>
694     UpdateObject = AttUpdate
695     DataSetCloseAction = dcDiscardChanges
696     left = 280
697     top = 433
698     object AttachmentsMONATTACHMENT_ID: TIBLargeIntField
699     FieldKind = fkData
700     FieldName = 'MON$ATTACHMENT_ID'
701     Index = 0
702     LookupCache = False
703     ProviderFlags = [pfInUpdate, pfInWhere]
704     ReadOnly = False
705     Required = False
706     end
707     object AttachmentsMONSERVER_PID: TIBIntegerField
708     FieldKind = fkData
709     FieldName = 'MON$SERVER_PID'
710     Index = 1
711     LookupCache = False
712     ProviderFlags = [pfInUpdate, pfInWhere]
713     ReadOnly = False
714     Required = False
715     end
716     object AttachmentsMONSTATE: TIBSmallintField
717     FieldKind = fkData
718     FieldName = 'MON$STATE'
719     Index = 2
720     LookupCache = False
721     ProviderFlags = [pfInUpdate, pfInWhere]
722     ReadOnly = False
723     Required = False
724     end
725     object AttachmentsMONATTACHMENT_NAME: TIBStringField
726     FieldKind = fkData
727     FieldName = 'MON$ATTACHMENT_NAME'
728     Index = 3
729     LookupCache = False
730     ProviderFlags = [pfInUpdate, pfInWhere]
731     ReadOnly = False
732     Required = False
733     Size = 255
734     end
735     object AttachmentsMONUSER: TIBStringField
736     FieldKind = fkData
737     FieldName = 'MON$USER'
738     Index = 4
739     LookupCache = False
740     ProviderFlags = [pfInUpdate, pfInWhere]
741     ReadOnly = False
742     Required = False
743     Size = 31
744     end
745     object AttachmentsMONROLE: TIBStringField
746     FieldKind = fkData
747     FieldName = 'MON$ROLE'
748     Index = 5
749     LookupCache = False
750     ProviderFlags = [pfInUpdate, pfInWhere]
751     ReadOnly = False
752     Required = False
753     Size = 31
754     end
755     object AttachmentsMONREMOTE_PROTOCOL: TIBStringField
756     FieldKind = fkData
757     FieldName = 'MON$REMOTE_PROTOCOL'
758     Index = 6
759     LookupCache = False
760     ProviderFlags = [pfInUpdate, pfInWhere]
761     ReadOnly = False
762     Required = False
763     Size = 10
764     end
765     object AttachmentsMONREMOTE_ADDRESS: TIBStringField
766     FieldKind = fkData
767     FieldName = 'MON$REMOTE_ADDRESS'
768     Index = 7
769     LookupCache = False
770     ProviderFlags = [pfInUpdate, pfInWhere]
771     ReadOnly = False
772     Required = False
773     Size = 255
774     end
775     object AttachmentsMONREMOTE_PID: TIBIntegerField
776     FieldKind = fkData
777     FieldName = 'MON$REMOTE_PID'
778     Index = 8
779     LookupCache = False
780     ProviderFlags = [pfInUpdate, pfInWhere]
781     ReadOnly = False
782     Required = False
783     end
784     object AttachmentsMONCHARACTER_SET_ID: TIBSmallintField
785     FieldKind = fkData
786     FieldName = 'MON$CHARACTER_SET_ID'
787     Index = 9
788     LookupCache = False
789     ProviderFlags = [pfInUpdate, pfInWhere]
790     ReadOnly = False
791     Required = False
792     end
793     object AttachmentsMONTIMESTAMP: TDateTimeField
794     FieldKind = fkData
795     FieldName = 'MON$TIMESTAMP'
796     Index = 10
797     LookupCache = False
798     ProviderFlags = [pfInUpdate, pfInWhere]
799     ReadOnly = False
800     Required = False
801     end
802     object AttachmentsMONGARBAGE_COLLECTION: TIBSmallintField
803     FieldKind = fkData
804     FieldName = 'MON$GARBAGE_COLLECTION'
805     Index = 11
806     LookupCache = False
807     ProviderFlags = [pfInUpdate, pfInWhere]
808     ReadOnly = False
809     Required = False
810     end
811     object AttachmentsMONREMOTE_PROCESS: TIBStringField
812     FieldKind = fkData
813     FieldName = 'MON$REMOTE_PROCESS'
814     Index = 12
815     LookupCache = False
816     ProviderFlags = [pfInUpdate, pfInWhere]
817     ReadOnly = False
818     Required = False
819     Size = 255
820     end
821     object AttachmentsMONSTAT_ID: TIBIntegerField
822     FieldKind = fkData
823     FieldName = 'MON$STAT_ID'
824     Index = 13
825     LookupCache = False
826     ProviderFlags = [pfInUpdate, pfInWhere]
827     ReadOnly = False
828     Required = False
829     end
830     object AttachmentsMONCLIENT_VERSION: TIBStringField
831     FieldKind = fkData
832     FieldName = 'MON$CLIENT_VERSION'
833     Index = 14
834     LookupCache = False
835     ProviderFlags = [pfInUpdate, pfInWhere]
836     ReadOnly = False
837     Required = False
838     Size = 255
839     end
840     object AttachmentsMONREMOTE_VERSION: TIBStringField
841     FieldKind = fkData
842     FieldName = 'MON$REMOTE_VERSION'
843     Index = 15
844     LookupCache = False
845     ProviderFlags = [pfInUpdate, pfInWhere]
846     ReadOnly = False
847     Required = False
848     Size = 255
849     end
850     object AttachmentsMONREMOTE_HOST: TIBStringField
851     FieldKind = fkData
852     FieldName = 'MON$REMOTE_HOST'
853     Index = 16
854     LookupCache = False
855     ProviderFlags = [pfInUpdate, pfInWhere]
856     ReadOnly = False
857     Required = False
858     Size = 255
859     end
860     object AttachmentsMONREMOTE_OS_USER: TIBStringField
861     FieldKind = fkData
862     FieldName = 'MON$REMOTE_OS_USER'
863     Index = 17
864     LookupCache = False
865     ProviderFlags = [pfInUpdate, pfInWhere]
866     ReadOnly = False
867     Required = False
868     Size = 255
869     end
870     object AttachmentsMONAUTH_METHOD: TIBStringField
871     FieldKind = fkData
872     FieldName = 'MON$AUTH_METHOD'
873     Index = 18
874     LookupCache = False
875     ProviderFlags = [pfInUpdate, pfInWhere]
876     ReadOnly = False
877     Required = False
878     Size = 255
879     end
880     object AttachmentsMONSYSTEM_FLAG: TIBSmallintField
881     FieldKind = fkData
882     FieldName = 'MON$SYSTEM_FLAG'
883     Index = 19
884     LookupCache = False
885     ProviderFlags = [pfInUpdate, pfInWhere]
886     ReadOnly = False
887     Required = True
888     end
889     object AttachmentsRDBCHARACTER_SET_NAME: TIBStringField
890     FieldKind = fkData
891     FieldName = 'RDB$CHARACTER_SET_NAME'
892     Index = 20
893     LookupCache = False
894     ProviderFlags = [pfInUpdate, pfInWhere]
895     ReadOnly = False
896     Required = False
897     Size = 31
898     end
899     object AttachmentsRDBFORM_OF_USE: TIBStringField
900     FieldKind = fkData
901     FieldName = 'RDB$FORM_OF_USE'
902     Index = 21
903     LookupCache = False
904     ProviderFlags = [pfInUpdate, pfInWhere]
905     ReadOnly = False
906     Required = False
907     Size = 31
908     end
909     object AttachmentsRDBNUMBER_OF_CHARACTERS: TIBIntegerField
910     FieldKind = fkData
911     FieldName = 'RDB$NUMBER_OF_CHARACTERS'
912     Index = 22
913     LookupCache = False
914     ProviderFlags = [pfInUpdate, pfInWhere]
915     ReadOnly = False
916     Required = False
917     end
918     object AttachmentsRDBDEFAULT_COLLATE_NAME: TIBStringField
919     FieldKind = fkData
920     FieldName = 'RDB$DEFAULT_COLLATE_NAME'
921     Index = 23
922     LookupCache = False
923     ProviderFlags = [pfInUpdate, pfInWhere]
924     ReadOnly = False
925     Required = False
926     Size = 31
927     end
928     object AttachmentsRDBCHARACTER_SET_ID: TIBSmallintField
929     FieldKind = fkData
930     FieldName = 'RDB$CHARACTER_SET_ID'
931     Index = 24
932     LookupCache = False
933     ProviderFlags = [pfInUpdate, pfInWhere]
934     ReadOnly = False
935     Required = False
936     end
937     object AttachmentsRDBSYSTEM_FLAG: TIBSmallintField
938     FieldKind = fkData
939     FieldName = 'RDB$SYSTEM_FLAG'
940     Index = 25
941     LookupCache = False
942     ProviderFlags = [pfInUpdate, pfInWhere]
943     ReadOnly = False
944     Required = True
945     end
946     object AttachmentsRDBDESCRIPTION: TIBMemoField
947     FieldKind = fkData
948     FieldName = 'RDB$DESCRIPTION'
949     Index = 26
950     LookupCache = False
951     ProviderFlags = [pfInUpdate, pfInWhere]
952     ReadOnly = False
953     Required = False
954     BlobType = ftMemo
955     Size = 8
956     Transliterate = False
957     DisplayTextAsClassName = False
958     end
959     object AttachmentsRDBFUNCTION_NAME: TIBStringField
960     FieldKind = fkData
961     FieldName = 'RDB$FUNCTION_NAME'
962     Index = 27
963     LookupCache = False
964     ProviderFlags = [pfInUpdate, pfInWhere]
965     ReadOnly = False
966     Required = False
967     Size = 31
968     end
969     object AttachmentsRDBBYTES_PER_CHARACTER: TIBSmallintField
970     FieldKind = fkData
971     FieldName = 'RDB$BYTES_PER_CHARACTER'
972     Index = 28
973     LookupCache = False
974     ProviderFlags = [pfInUpdate, pfInWhere]
975     ReadOnly = False
976     Required = False
977     end
978     object AttachmentsRDBSECURITY_CLASS: TIBStringField
979     FieldKind = fkData
980     FieldName = 'RDB$SECURITY_CLASS'
981     Index = 29
982     LookupCache = False
983     ProviderFlags = [pfInUpdate, pfInWhere]
984     ReadOnly = False
985     Required = False
986     Size = 31
987     end
988     object AttachmentsRDBOWNER_NAME: TIBStringField
989     FieldKind = fkData
990     FieldName = 'RDB$OWNER_NAME'
991     Index = 30
992     LookupCache = False
993     ProviderFlags = [pfInUpdate, pfInWhere]
994     ReadOnly = False
995     Required = False
996     Size = 31
997     end
998     end
999     object AttUpdate: TIBUpdate
1000     OnApplyUpdates = AttUpdateApplyUpdates
1001     left = 376
1002     top = 432
1003     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
1063     object AdminUserQuery: TIBSQL
1064     Database = IBDatabase1
1065     GenerateParamNames = False
1066     UniqueParamNames = False
1067     ParamCheck = True
1068     SQL.Strings = (
1069     'Select A.SEC$ADMIN From SEC$USERS A'
1070     'Where SEC$USER_NAME = CURRENT_USER'
1071     )
1072     Transaction = CurrentTransaction
1073     left = 424
1074     top = 496
1075     end
1076     object DBTables: TIBQuery
1077     AllowAutoActivateTransaction = False
1078     Database = IBDatabase1
1079     Transaction = CurrentTransaction
1080     BufferChunks = 1000
1081     CachedUpdates = False
1082     GenerateParamNames = False
1083     GeneratorField.ApplyOnEvent = gaeOnNewRecord
1084     SQL.Strings = (
1085     'Select Trim(A.RDB$RELATION_NAME) as RDB$RELATION_NAME, 1 as Selected'
1086     ' From RDB$RELATIONS A'
1087     ' Where RDB$SYSTEM_FLAG = 0'
1088     ' order by 1'
1089     )
1090     Params = <>
1091     UpdateObject = DBTablesUpdate
1092     DataSetCloseAction = dcDiscardChanges
1093     left = 520
1094     top = 488
1095     end
1096     object DBTablesUpdate: TIBUpdate
1097     RefreshSQL.Strings = (
1098     ''
1099     )
1100     OnApplyUpdates = DBTablesUpdateApplyUpdates
1101     left = 592
1102     top = 480
1103     end
1104     object AuthMappings: TIBQuery
1105     AllowAutoActivateTransaction = False
1106     Database = IBDatabase1
1107     Transaction = CurrentTransaction
1108     BufferChunks = 1000
1109     CachedUpdates = False
1110     GenerateParamNames = False
1111     GeneratorField.ApplyOnEvent = gaeOnNewRecord
1112     SQL.Strings = (
1113     'SELECT r.RDB$DB_KEY, cast(''Local'' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,'
1114     ' Case'
1115     ' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is not null then cast (''Plugin '' || r.RDB$MAP_PLUGIN as VarChar(20))'
1116     ' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is null then ''Any Plugin'''
1117     ' When r.RDB$MAP_USING = ''S'' then ''Any Plugin Serverwide'''
1118     ' When r.RDB$MAP_USING = ''M'' then ''Mapping'''
1119     ' When r.RDB$MAP_USING = ''*'' then ''*'''
1120     ' else'
1121     ' ''Using '' || r.RDB$MAP_USING || '','' || coalesce(r.RDB$MAP_PLUGIN,'''') End as MAP_USING,'
1122     ' r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,'
1123     ' r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,'
1124     ' Trim(r.RDB$MAP_FROM_TYPE) || '': '' || Trim(r.RDB$MAP_FROM) as MAP_FROM,'
1125     ' r.RDB$MAP_TO_TYPE,'
1126     ' T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,'
1127     ' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.RDB$MAP_TO) as MAP_TO,'
1128     ' r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION'
1129     'FROM RDB$AUTH_MAPPING r'
1130     'JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE'''
1131     'UNION'
1132     'SELECT r.RDB$DB_KEY, ''Global'', r.SEC$MAP_NAME,'
1133     ' Case'
1134     ' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is not null then cast (''Plugin '' || r.SEC$MAP_PLUGIN as VarChar(20))'
1135     ' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is null then ''Any Plugin'''
1136     ' When r.SEC$MAP_USING = ''S'' then ''Any Plugin Serverwide'''
1137     ' When r.SEC$MAP_USING = ''M'' then ''Mapping'''
1138     ' When r.SEC$MAP_USING = ''*'' then ''*'''
1139     ' else'
1140     ' ''Using '' || r.SEC$MAP_USING || '','' || coalesce(r.SEC$MAP_PLUGIN,'''') End as MAP_USING,'
1141     ' r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,'
1142     ' r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,'
1143     ' Trim(r.SEC$MAP_FROM_TYPE) || '': '' || Trim(r.SEC$MAP_FROM) as MAP_FROM,'
1144     ' r.SEC$MAP_TO_TYPE,'
1145     ' T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,'
1146     ' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.SEC$MAP_TO) as MAP_TO,'
1147     ' null,null'
1148     'FROM SEC$GLOBAL_AUTH_MAPPING r'
1149     'JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE'''
1150     ''
1151     )
1152     Params = <>
1153     DataSetCloseAction = dcDiscardChanges
1154     left = 657
1155     top = 118
1156     end
1157     object AccessRights: TIBQuery
1158     AllowAutoActivateTransaction = False
1159     Database = IBDatabase1
1160     Transaction = CurrentTransaction
1161     OnCalcFields = AccessRightsCalcFields
1162     BufferChunks = 1000
1163     CachedUpdates = False
1164     GenerateParamNames = False
1165     GeneratorField.ApplyOnEvent = gaeOnNewRecord
1166     SQL.Strings = (
1167     'with recursive AccessRight as ('
1168     'Select UP.RDB$USER as SUBJECT_NAME,'
1169     ' UP.RDB$USER_TYPE as SUBJECT_TYPE,'
1170     ' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,'
1171     ' UP.RDB$RELATION_NAME as OBJECT_NAME,'
1172     ' T2.RDB$TYPE_NAME as OBJECT_TYPE_NAME,'
1173     ' UP.RDB$GRANTOR as GRANTOR,'
1174     ' UP.RDB$GRANT_OPTION as GRANT_OPTION,'
1175     ' List(Trim(UP.RDB$PRIVILEGE)) as Granted_Privileges,'
1176     ' count (C.RDB$DB_KEY) as ChildCount'
1177     ' From RDB$USER_PRIVILEGES UP'
1178     ' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1179     ' Left Outer JOIN RDB$USER_PRIVILEGES C On C.RDB$USER_TYPE = UP.RDB$OBJECT_TYPE and C.RDB$USER = UP.RDB$RELATION_NAME'
1180     ' Where UP.RDB$USER <> ''SYSDBA'''
1181     ' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,'
1182     ' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, UP.RDB$GRANT_OPTION,'
1183     ' T2.RDB$TYPE_NAME'
1184     ' ),'
1185     ''
1186     ' AccessRights as ('
1187     ' select cast(Trim(SUBJECT_NAME) || SUBJECT_TYPE as Char(33)) as ID,SUBJECT_TYPE, SUBJECT_NAME,'
1188     ' OBJECT_TYPE, OBJECT_NAME, OBJECT_TYPE_NAME, Granted_Privileges,GRANTOR, GRANT_OPTION,'
1189     ' cast(NULL as Char(33) ) as Parent, ChildCount'
1190     ' From AccessRight'
1191     ' UNION all'
1192     ' Select Trim(B.SUBJECT_NAME) || B.SUBJECT_TYPE as ID, B.SUBJECT_TYPE, B.SUBJECT_NAME,'
1193     ' B.OBJECT_TYPE, B.OBJECT_NAME, B.OBJECT_TYPE_NAME, B.Granted_Privileges, B.GRANTOR, B.GRANT_OPTION,'
1194     ' A.ID as Parent,B.ChildCount'
1195     ' From AccessRight B'
1196     ' JOIN AccessRights A On A.OBJECT_TYPE = B.SUBJECT_TYPE and A.OBJECT_NAME = B.SUBJECT_NAME'
1197     ' )'
1198     ''
1199     'Select *'
1200     'From ('
1201     'Select A.ID as ID, Trim(A.SUBJECT_NAME )as SUBJECT_NAME, A.SUBJECT_TYPE as SUBJECT_TYPE,'
1202     ' case When A.Parent is NULL then Trim(T.RDB$TYPE_NAME) || A.SUBJECT_TYPE Else A.Parent End as Parent,'
1203     ' sum(A.ChildCount) as ChildCount'
1204     ' from AccessRights A'
1205     ' JOIN RDB$TYPES T On T.RDB$TYPE = A.SUBJECT_TYPE and RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1206     ' Group By A.ID, A.SUBJECT_NAME, A.SUBJECT_TYPE, A.Parent, T.RDB$TYPE_NAME'
1207     'UNION'
1208     'SELECT Trim(r.RDB$TYPE_NAME) || r.RDB$TYPE as ID, Trim(r.RDB$TYPE_NAME) || ''S'' as SUBJECT_NAME,-r.RDB$TYPE,'
1209     ' NULL,1'
1210     'FROM RDB$TYPES r Where RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1211     'and Exists(Select * from RDB$USER_PRIVILEGES Where RDB$USER_TYPE = r.RDB$TYPE)'
1212     ''
1213     ' )'
1214     ''
1215     )
1216     Params = <>
1217     DataSetCloseAction = dcDiscardChanges
1218     left = 648
1219     top = 264
1220     object AccessRightsID: TIBStringField
1221     FieldKind = fkData
1222     FieldName = 'ID'
1223     Index = 0
1224     LookupCache = False
1225     ProviderFlags = [pfInUpdate, pfInWhere]
1226     ReadOnly = False
1227     Required = False
1228     Size = 37
1229     end
1230     object AccessRightsSUBJECT_NAME: TIBStringField
1231     FieldKind = fkData
1232     FieldName = 'SUBJECT_NAME'
1233     Index = 1
1234     LookupCache = False
1235     ProviderFlags = [pfInUpdate, pfInWhere]
1236     ReadOnly = False
1237     Required = False
1238     Size = 32
1239     end
1240     object AccessRightsSUBJECT_TYPE: TIBSmallintField
1241     FieldKind = fkData
1242     FieldName = 'SUBJECT_TYPE'
1243     Index = 2
1244     LookupCache = False
1245     ProviderFlags = [pfInUpdate, pfInWhere]
1246     ReadOnly = False
1247     Required = False
1248     end
1249     object AccessRightsPARENT: TIBStringField
1250     FieldKind = fkData
1251     FieldName = 'PARENT'
1252     Index = 3
1253     LookupCache = False
1254     ProviderFlags = [pfInUpdate, pfInWhere]
1255     ReadOnly = False
1256     Required = False
1257     Size = 37
1258     end
1259     object AccessRightsCHILDCOUNT: TIBLargeIntField
1260     FieldKind = fkData
1261     FieldName = 'CHILDCOUNT'
1262     Index = 4
1263     LookupCache = False
1264     ProviderFlags = [pfInUpdate, pfInWhere]
1265     ReadOnly = False
1266     Required = False
1267     end
1268     object AccessRightsImageIndex: TLongintField
1269     FieldKind = fkCalculated
1270     FieldName = 'ImageIndex'
1271     Index = 5
1272     LookupCache = False
1273     ProviderFlags = [pfInUpdate, pfInWhere]
1274     ReadOnly = False
1275     Required = False
1276     end
1277     object AccessRightsDisplayName: TStringField
1278     FieldKind = fkCalculated
1279     FieldName = 'DisplayName'
1280     Index = 6
1281     LookupCache = False
1282     ProviderFlags = [pfInUpdate, pfInWhere]
1283     ReadOnly = False
1284     Required = False
1285     Size = 64
1286     end
1287     end
1288     object SubjectAccessRights: TIBQuery
1289     AllowAutoActivateTransaction = False
1290     Database = IBDatabase1
1291     Transaction = CurrentTransaction
1292     BeforeOpen = SubjectAccessRightsBeforeOpen
1293     BufferChunks = 1000
1294     CachedUpdates = False
1295     GenerateParamNames = False
1296     GeneratorField.ApplyOnEvent = gaeOnNewRecord
1297     SQL.Strings = (
1298     'Select UP.RDB$USER as SUBJECT_NAME,'
1299     ' UP.RDB$USER_TYPE as SUBJECT_TYPE,'
1300     ' T1.RDB$TYPE_NAME as SUBJECT_TYPE_NAME,'
1301     ' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,'
1302     ' case T2.RDB$TYPE_NAME'
1303     ' When ''RELATION'' then ''TABLE'''
1304     ' When ''FIELD'' then ''DOMAIN'''
1305     ' Else T2.RDB$TYPE_NAME End as OBJECT_TYPE_NAME,'
1306     ' UP.RDB$RELATION_NAME as OBJECT_NAME,'
1307     ' List(DISTINCT Trim(RDB$PRIVILEGE)) as Granted_Privileges,'
1308     ' UC.Update_Columns,'
1309     ' RC.Reference_Columns,'
1310     ' UP.RDB$GRANTOR as GrantedBy,'
1311     ' coalesce(UP.RDB$GRANT_OPTION,0) as GRANT_OPTION'
1312     ' From RDB$USER_PRIVILEGES UP'
1313     ' JOIN RDB$TYPES T1 On T1.RDB$TYPE = UP.RDB$USER_TYPE and T1.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1314     ' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1315     ' Left Outer JOIN ('
1316     ' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,'
1317     ' List(Trim(RDB$FIELD_NAME)) as Update_Columns'
1318     ' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''U'''
1319     ' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) UC'
1320     ' On UC.RDB$USER = UP.RDB$USER and UC.RDB$USER_TYPE = UP.RDB$USER_TYPE and'
1321     ' UC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and UC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME'
1322     ' Left Outer JOIN ('
1323     ' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,'
1324     ' List(Trim(RDB$FIELD_NAME)) as Reference_Columns'
1325     ' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''R'''
1326     ' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) RC'
1327     ' On RC.RDB$USER = UP.RDB$USER and RC.RDB$USER_TYPE = UP.RDB$USER_TYPE and'
1328     ' RC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and RC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME'
1329     ' Where Trim(UP.RDB$USER) || UP.RDB$USER_TYPE = :ID and'
1330     ' (not (UP.RDB$OBJECT_TYPE in (0,9,13)) or'
1331     ' (UP.RDB$OBJECT_TYPE in (0,13) and'
1332     ' not Exists(Select * from RDB$RELATIONS Where RDB$RELATION_NAME = UP.RDB$RELATION_NAME and RDB$SYSTEM_FLAG <> 0)) or'
1333     ' (UP.RDB$OBJECT_TYPE = 9 and UP.RDB$RELATION_NAME not Similar to ''RDB$%|SEC$%|MON$%|SQL$%'')'
1334     ' )'
1335     ' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,'
1336     ' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, RDB$GRANT_OPTION,T1.RDB$TYPE_NAME,'
1337     ' T2.RDB$TYPE_NAME, UC.Update_Columns, RC.Reference_Columns'
1338     ''
1339     )
1340     Params = <
1341     item
1342     DataType = ftUnknown
1343     Name = 'ID'
1344     ParamType = ptInput
1345     end>
1346     DataSetCloseAction = dcDiscardChanges
1347     left = 648
1348     top = 336
1349     ParamData = <
1350     item
1351     DataType = ftUnknown
1352     Name = 'ID'
1353     ParamType = ptInput
1354     end>
1355     end
1356     end