ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/examples/DBAdmin/DataModule.lfm
Revision: 209
Committed: Wed Mar 14 12:48:51 2018 UTC (6 years ago) by tony
File size: 42242 byte(s)
Log Message:
Fixes Merged

File Contents

# User Rev Content
1 tony 158 object DatabaseData: TDatabaseData
2     OldCreateOrder = False
3     Height = 552
4 tony 209 HorizontalOffset = 645
5 tony 158 VerticalOffset = 400
6     Width = 730
7     object IBDatabase1: TIBDatabase
8 tony 209 Connected = True
9 tony 158 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 TableNameLookup: TIBQuery
264     AllowAutoActivateTransaction = False
265     Database = IBDatabase1
266     Transaction = CurrentTransaction
267     BufferChunks = 1000
268     CachedUpdates = False
269     GenerateParamNames = False
270     GeneratorField.ApplyOnEvent = gaeOnNewRecord
271     SQL.Strings = (
272     'SELECT r.RDB$RELATION_ID,'
273     ' trim(r.RDB$RELATION_NAME) as RDB$RELATION_NAME'
274     'FROM RDB$RELATIONS r'
275     )
276     Params = <>
277     DataSetCloseAction = dcDiscardChanges
278     left = 288
279     top = 283
280     end
281     object UserList: TIBQuery
282     AllowAutoActivateTransaction = False
283     Database = IBDatabase1
284     Transaction = CurrentTransaction
285     AfterInsert = UserListAfterInsert
286     AfterOpen = UserListAfterOpen
287     AfterPost = UserListAfterPost
288     AfterScroll = UserListAfterScroll
289     BeforeClose = UserListBeforeClose
290     BufferChunks = 1000
291     CachedUpdates = False
292     GenerateParamNames = False
293     GeneratorField.ApplyOnEvent = gaeOnNewRecord
294     SQL.Strings = (
295     'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
296 tony 209 'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
297 tony 158 'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
298 tony 209 'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
299 tony 158 'case when Count(B.MON$ATTACHMENT_ID) > 0 then true else false end as LoggedIn,'
300     'case When C.SEC$USER is not null then true else false end as DBCreator'
301     'From SEC$USERS A'
302     'Left Outer Join MON$ATTACHMENTS B'
303     'On A.SEC$USER_NAME = B.MON$USER'
304     'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME'
305     'Group By A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
306     'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
307     'A.SEC$FIRST_NAME, A.SEC$LAST_NAME, C.SEC$USER'
308     )
309     Params = <>
310     UpdateObject = UpdateUsers
311     DataSetCloseAction = dcSaveChanges
312     left = 416
313     top = 352
314     object UserListSECPLUGIN: TIBStringField
315     FieldKind = fkData
316     FieldName = 'SEC$PLUGIN'
317     Index = 0
318     LookupCache = False
319     ProviderFlags = [pfInUpdate, pfInWhere]
320     ReadOnly = True
321     Required = False
322     Size = 31
323     end
324     object UserListSECADMIN: TBooleanField
325     FieldKind = fkData
326     FieldName = 'SEC$ADMIN'
327     Index = 1
328     LookupCache = False
329     ProviderFlags = [pfInUpdate, pfInWhere]
330     ReadOnly = False
331     Required = False
332     DisplayValues = 'True;False'
333     end
334     object UserListSECACTIVE: TBooleanField
335     FieldKind = fkData
336     FieldName = 'SEC$ACTIVE'
337     Index = 2
338     LookupCache = False
339     ProviderFlags = [pfInUpdate, pfInWhere]
340     ReadOnly = False
341     Required = False
342     DisplayValues = 'True;False'
343     end
344     object UserListSECMIDDLE_NAME: TIBStringField
345     FieldKind = fkData
346     FieldName = 'SEC$MIDDLE_NAME'
347     Index = 3
348     LookupCache = False
349     ProviderFlags = [pfInUpdate, pfInWhere]
350     ReadOnly = False
351     Required = False
352     Size = 32
353     end
354     object UserListSECFIRST_NAME: TIBStringField
355     FieldKind = fkData
356     FieldName = 'SEC$FIRST_NAME'
357     Index = 4
358     LookupCache = False
359     ProviderFlags = [pfInUpdate, pfInWhere]
360     ReadOnly = False
361     Required = False
362     Size = 32
363     end
364     object UserListSECLAST_NAME: TIBStringField
365     FieldKind = fkData
366     FieldName = 'SEC$LAST_NAME'
367     Index = 5
368     LookupCache = False
369     ProviderFlags = [pfInUpdate, pfInWhere]
370     ReadOnly = False
371     Required = False
372     Size = 32
373     end
374     object UserListLOGGEDIN: TBooleanField
375     FieldKind = fkData
376     FieldName = 'LOGGEDIN'
377 tony 209 Index = 6
378 tony 158 LookupCache = False
379     ProviderFlags = [pfInUpdate, pfInWhere]
380     ReadOnly = False
381     Required = True
382     DisplayValues = 'True;False'
383     end
384     object UserListCURRENT_CONNECTION: TIBLargeIntField
385     FieldKind = fkData
386     FieldName = 'CURRENT_CONNECTION'
387 tony 209 Index = 7
388 tony 158 LookupCache = False
389     ProviderFlags = [pfInUpdate, pfInWhere]
390     ReadOnly = False
391     Required = True
392     end
393     object UserListDBCREATOR: TBooleanField
394     FieldKind = fkData
395     FieldName = 'DBCREATOR'
396 tony 209 Index = 8
397 tony 158 LookupCache = False
398     ProviderFlags = [pfInUpdate, pfInWhere]
399     ReadOnly = False
400     Required = True
401     DisplayValues = 'True;False'
402     end
403     object UserListUSERID: TLongintField
404     FieldKind = fkCalculated
405     FieldName = 'USERID'
406 tony 209 Index = 9
407 tony 158 LookupCache = False
408     ProviderFlags = [pfInUpdate, pfInWhere]
409     ReadOnly = False
410     Required = False
411     end
412     object UserListGROUPID: TLongintField
413     FieldKind = fkCalculated
414     FieldName = 'GROUPID'
415 tony 209 Index = 10
416     LookupCache = False
417     ProviderFlags = [pfInUpdate, pfInWhere]
418     ReadOnly = False
419     Required = False
420     end
421     object UserListSECPASSWORD: TIBStringField
422     FieldKind = fkData
423     FieldName = 'SEC$PASSWORD'
424     Index = 11
425     LookupCache = False
426     ProviderFlags = [pfInUpdate, pfInWhere]
427     ReadOnly = False
428     Required = False
429     Size = 32
430     end
431     object UserListSECUSER_NAME: TIBStringField
432     FieldKind = fkData
433     FieldName = 'SEC$USER_NAME'
434 tony 158 Index = 12
435     LookupCache = False
436     ProviderFlags = [pfInUpdate, pfInWhere]
437     ReadOnly = False
438     Required = False
439 tony 209 Size = 31
440 tony 158 end
441     end
442     object UpdateUsers: TIBUpdate
443     RefreshSQL.Strings = (
444     'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
445 tony 209 'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
446 tony 158 'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
447 tony 209 'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
448 tony 158 'case when B.MON$ATTACHMENT_ID is not null then true else false end as LoggedIn,'
449     'case When C.SEC$USER is not null then true else false end as DBCreator'
450     'From SEC$USERS A'
451     'Left Outer Join MON$ATTACHMENTS B'
452     'On A.SEC$USER_NAME = B.MON$USER'
453     'Left Outer Join SEC$DB_CREATORS C on C.SEC$USER = A.SEC$USER_NAME'
454 tony 209 'Where A.SEC$USER_NAME = :SEC$USER_NAME'
455 tony 158 )
456     OnApplyUpdates = UpdateUsersApplyUpdates
457     left = 544
458     top = 360
459     end
460     object RoleNameList: TIBQuery
461     AllowAutoActivateTransaction = False
462     Database = IBDatabase1
463     Transaction = CurrentTransaction
464     AutoCommit = acCommitRetaining
465     BufferChunks = 1000
466     CachedUpdates = False
467     DataSource = UserListSource
468     GenerateParamNames = False
469     GeneratorField.ApplyOnEvent = gaeOnNewRecord
470     SQL.Strings = (
471     'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG, '
472 tony 209 'P.RDB$USER,RDB$PRIVILEGE, cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
473 tony 158 'Case When RDB$PRIVILEGE is null then 0 else 1 End as GRANTED'
474     'FROM RDB$ROLES r'
475     'Left Outer JOIN ('
476     'Select RDB$RELATION_NAME, RDB$PRIVILEGE, RDB$USER From RDB$USER_PRIVILEGES '
477 tony 209 'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
478 tony 158 ') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME '
479     ''
480     )
481     Params = <
482     item
483     DataType = ftUnknown
484 tony 209 Name = 'SEC$USER_NAME'
485 tony 158 ParamType = ptInput
486     end>
487     UpdateObject = UpdateUserRoles
488     DataSetCloseAction = dcSaveChanges
489     left = 424
490     top = 280
491     ParamData = <
492     item
493     DataType = ftUnknown
494 tony 209 Name = 'SEC$USER_NAME'
495 tony 158 ParamType = ptInput
496     end>
497     end
498     object UpdateUserRoles: TIBUpdate
499     RefreshSQL.Strings = (
500     'SELECT r.RDB$ROLE_NAME, r.RDB$OWNER_NAME, r.RDB$DESCRIPTION, r.RDB$SYSTEM_FLAG,'
501 tony 209 'P.RDB$USER,RDB$PRIVILEGE, cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
502 tony 158 '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 tony 209 'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
507 tony 158 ') P On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME'
508     'Where r.RDB$ROLE_NAME = :RDB$ROLE_NAME'
509     )
510     OnApplyUpdates = UpdateUserRolesApplyUpdates
511     left = 544
512     top = 288
513     end
514     object ApplicationProperties1: TApplicationProperties
515     OnException = ApplicationProperties1Exception
516     left = 528
517     top = 32
518     end
519     object UserTags: TIBQuery
520     AllowAutoActivateTransaction = False
521     Database = IBDatabase1
522     Transaction = CurrentTransaction
523     AfterInsert = UserTagsAfterInsert
524     BufferChunks = 1000
525     CachedUpdates = False
526     DataSource = UserListSource
527     GenerateParamNames = False
528     GeneratorField.ApplyOnEvent = gaeOnNewRecord
529     SQL.Strings = (
530     'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE'
531     'From'
532     'SEC$USER_ATTRIBUTES A'
533 tony 209 'Where SEC$USER_NAME = :SEC$USER_NAME'
534 tony 158 )
535     Params = <
536     item
537     DataType = ftUnknown
538 tony 209 Name = 'SEC$USER_NAME'
539 tony 158 ParamType = ptInput
540     end>
541     UpdateObject = TagsUpdate
542     DataSetCloseAction = dcSaveChanges
543     left = 424
544     top = 192
545     ParamData = <
546     item
547     DataType = ftUnknown
548 tony 209 Name = 'SEC$USER_NAME'
549 tony 158 ParamType = ptInput
550     end>
551     end
552     object TagsUpdate: TIBUpdate
553     RefreshSQL.Strings = (
554     'Select A.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE From '
555     'SEC$USER_ATTRIBUTES A'
556     'Where SEC$USER_NAME = :SEC$USER_NAME'
557     ' and A.SEC$KEY = :SEC$KEY'
558     )
559     OnApplyUpdates = TagsUpdateApplyUpdates
560     left = 536
561     top = 200
562     end
563     object UserListSource: TDataSource
564     DataSet = UserList
565     left = 304
566     top = 360
567     end
568     object Attachments: TIBQuery
569     AllowAutoActivateTransaction = False
570     Database = IBDatabase1
571     Transaction = CurrentTransaction
572     AfterDelete = AttachmentsAfterDelete
573     AfterOpen = AttachmentsAfterOpen
574     BeforeOpen = AttachmentsBeforeOpen
575     BufferChunks = 1000
576     CachedUpdates = False
577     GenerateParamNames = False
578     GeneratorField.ApplyOnEvent = gaeOnNewRecord
579     SQL.Strings = (
580     'SELECT *'
581     'FROM MON$ATTACHMENTS r'
582     'JOIN RDB$CHARACTER_SETS S On S.RDB$CHARACTER_SET_ID = r.MON$CHARACTER_SET_ID'
583     ''
584     )
585     Params = <>
586     UpdateObject = AttUpdate
587     DataSetCloseAction = dcDiscardChanges
588     left = 280
589     top = 433
590     object AttachmentsMONATTACHMENT_ID: TIBLargeIntField
591     FieldKind = fkData
592     FieldName = 'MON$ATTACHMENT_ID'
593     Index = 0
594     LookupCache = False
595     ProviderFlags = [pfInUpdate, pfInWhere]
596     ReadOnly = False
597     Required = False
598     end
599     object AttachmentsMONSERVER_PID: TIBIntegerField
600     FieldKind = fkData
601     FieldName = 'MON$SERVER_PID'
602     Index = 1
603     LookupCache = False
604     ProviderFlags = [pfInUpdate, pfInWhere]
605     ReadOnly = False
606     Required = False
607     end
608     object AttachmentsMONSTATE: TIBSmallintField
609     FieldKind = fkData
610     FieldName = 'MON$STATE'
611     Index = 2
612     LookupCache = False
613     ProviderFlags = [pfInUpdate, pfInWhere]
614     ReadOnly = False
615     Required = False
616     end
617     object AttachmentsMONATTACHMENT_NAME: TIBStringField
618     FieldKind = fkData
619     FieldName = 'MON$ATTACHMENT_NAME'
620     Index = 3
621     LookupCache = False
622     ProviderFlags = [pfInUpdate, pfInWhere]
623     ReadOnly = False
624     Required = False
625     Size = 255
626     end
627     object AttachmentsMONUSER: TIBStringField
628     FieldKind = fkData
629     FieldName = 'MON$USER'
630     Index = 4
631     LookupCache = False
632     ProviderFlags = [pfInUpdate, pfInWhere]
633     ReadOnly = False
634     Required = False
635     Size = 31
636     end
637     object AttachmentsMONROLE: TIBStringField
638     FieldKind = fkData
639     FieldName = 'MON$ROLE'
640     Index = 5
641     LookupCache = False
642     ProviderFlags = [pfInUpdate, pfInWhere]
643     ReadOnly = False
644     Required = False
645     Size = 31
646     end
647     object AttachmentsMONREMOTE_PROTOCOL: TIBStringField
648     FieldKind = fkData
649     FieldName = 'MON$REMOTE_PROTOCOL'
650     Index = 6
651     LookupCache = False
652     ProviderFlags = [pfInUpdate, pfInWhere]
653     ReadOnly = False
654     Required = False
655     Size = 10
656     end
657     object AttachmentsMONREMOTE_ADDRESS: TIBStringField
658     FieldKind = fkData
659     FieldName = 'MON$REMOTE_ADDRESS'
660     Index = 7
661     LookupCache = False
662     ProviderFlags = [pfInUpdate, pfInWhere]
663     ReadOnly = False
664     Required = False
665     Size = 255
666     end
667     object AttachmentsMONREMOTE_PID: TIBIntegerField
668     FieldKind = fkData
669     FieldName = 'MON$REMOTE_PID'
670     Index = 8
671     LookupCache = False
672     ProviderFlags = [pfInUpdate, pfInWhere]
673     ReadOnly = False
674     Required = False
675     end
676     object AttachmentsMONCHARACTER_SET_ID: TIBSmallintField
677     FieldKind = fkData
678     FieldName = 'MON$CHARACTER_SET_ID'
679     Index = 9
680     LookupCache = False
681     ProviderFlags = [pfInUpdate, pfInWhere]
682     ReadOnly = False
683     Required = False
684     end
685     object AttachmentsMONTIMESTAMP: TDateTimeField
686     FieldKind = fkData
687     FieldName = 'MON$TIMESTAMP'
688     Index = 10
689     LookupCache = False
690     ProviderFlags = [pfInUpdate, pfInWhere]
691     ReadOnly = False
692     Required = False
693     end
694     object AttachmentsMONGARBAGE_COLLECTION: TIBSmallintField
695     FieldKind = fkData
696     FieldName = 'MON$GARBAGE_COLLECTION'
697     Index = 11
698     LookupCache = False
699     ProviderFlags = [pfInUpdate, pfInWhere]
700     ReadOnly = False
701     Required = False
702     end
703     object AttachmentsMONREMOTE_PROCESS: TIBStringField
704     FieldKind = fkData
705     FieldName = 'MON$REMOTE_PROCESS'
706     Index = 12
707     LookupCache = False
708     ProviderFlags = [pfInUpdate, pfInWhere]
709     ReadOnly = False
710     Required = False
711     Size = 255
712     end
713     object AttachmentsMONSTAT_ID: TIBIntegerField
714     FieldKind = fkData
715     FieldName = 'MON$STAT_ID'
716     Index = 13
717     LookupCache = False
718     ProviderFlags = [pfInUpdate, pfInWhere]
719     ReadOnly = False
720     Required = False
721     end
722     object AttachmentsMONCLIENT_VERSION: TIBStringField
723     FieldKind = fkData
724     FieldName = 'MON$CLIENT_VERSION'
725     Index = 14
726     LookupCache = False
727     ProviderFlags = [pfInUpdate, pfInWhere]
728     ReadOnly = False
729     Required = False
730     Size = 255
731     end
732     object AttachmentsMONREMOTE_VERSION: TIBStringField
733     FieldKind = fkData
734     FieldName = 'MON$REMOTE_VERSION'
735     Index = 15
736     LookupCache = False
737     ProviderFlags = [pfInUpdate, pfInWhere]
738     ReadOnly = False
739     Required = False
740     Size = 255
741     end
742     object AttachmentsMONREMOTE_HOST: TIBStringField
743     FieldKind = fkData
744     FieldName = 'MON$REMOTE_HOST'
745     Index = 16
746     LookupCache = False
747     ProviderFlags = [pfInUpdate, pfInWhere]
748     ReadOnly = False
749     Required = False
750     Size = 255
751     end
752     object AttachmentsMONREMOTE_OS_USER: TIBStringField
753     FieldKind = fkData
754     FieldName = 'MON$REMOTE_OS_USER'
755     Index = 17
756     LookupCache = False
757     ProviderFlags = [pfInUpdate, pfInWhere]
758     ReadOnly = False
759     Required = False
760     Size = 255
761     end
762     object AttachmentsMONAUTH_METHOD: TIBStringField
763     FieldKind = fkData
764     FieldName = 'MON$AUTH_METHOD'
765     Index = 18
766     LookupCache = False
767     ProviderFlags = [pfInUpdate, pfInWhere]
768     ReadOnly = False
769     Required = False
770     Size = 255
771     end
772     object AttachmentsMONSYSTEM_FLAG: TIBSmallintField
773     FieldKind = fkData
774     FieldName = 'MON$SYSTEM_FLAG'
775     Index = 19
776     LookupCache = False
777     ProviderFlags = [pfInUpdate, pfInWhere]
778     ReadOnly = False
779     Required = True
780     end
781     object AttachmentsRDBCHARACTER_SET_NAME: TIBStringField
782     FieldKind = fkData
783     FieldName = 'RDB$CHARACTER_SET_NAME'
784     Index = 20
785     LookupCache = False
786     ProviderFlags = [pfInUpdate, pfInWhere]
787     ReadOnly = False
788     Required = False
789     Size = 31
790     end
791     object AttachmentsRDBFORM_OF_USE: TIBStringField
792     FieldKind = fkData
793     FieldName = 'RDB$FORM_OF_USE'
794     Index = 21
795     LookupCache = False
796     ProviderFlags = [pfInUpdate, pfInWhere]
797     ReadOnly = False
798     Required = False
799     Size = 31
800     end
801     object AttachmentsRDBNUMBER_OF_CHARACTERS: TIBIntegerField
802     FieldKind = fkData
803     FieldName = 'RDB$NUMBER_OF_CHARACTERS'
804     Index = 22
805     LookupCache = False
806     ProviderFlags = [pfInUpdate, pfInWhere]
807     ReadOnly = False
808     Required = False
809     end
810     object AttachmentsRDBDEFAULT_COLLATE_NAME: TIBStringField
811     FieldKind = fkData
812     FieldName = 'RDB$DEFAULT_COLLATE_NAME'
813     Index = 23
814     LookupCache = False
815     ProviderFlags = [pfInUpdate, pfInWhere]
816     ReadOnly = False
817     Required = False
818     Size = 31
819     end
820     object AttachmentsRDBCHARACTER_SET_ID: TIBSmallintField
821     FieldKind = fkData
822     FieldName = 'RDB$CHARACTER_SET_ID'
823     Index = 24
824     LookupCache = False
825     ProviderFlags = [pfInUpdate, pfInWhere]
826     ReadOnly = False
827     Required = False
828     end
829     object AttachmentsRDBSYSTEM_FLAG: TIBSmallintField
830     FieldKind = fkData
831     FieldName = 'RDB$SYSTEM_FLAG'
832     Index = 25
833     LookupCache = False
834     ProviderFlags = [pfInUpdate, pfInWhere]
835     ReadOnly = False
836     Required = True
837     end
838     object AttachmentsRDBDESCRIPTION: TIBMemoField
839     FieldKind = fkData
840     FieldName = 'RDB$DESCRIPTION'
841     Index = 26
842     LookupCache = False
843     ProviderFlags = [pfInUpdate, pfInWhere]
844     ReadOnly = False
845     Required = False
846     BlobType = ftMemo
847     Size = 8
848     Transliterate = False
849     DisplayTextAsClassName = False
850     end
851     object AttachmentsRDBFUNCTION_NAME: TIBStringField
852     FieldKind = fkData
853     FieldName = 'RDB$FUNCTION_NAME'
854     Index = 27
855     LookupCache = False
856     ProviderFlags = [pfInUpdate, pfInWhere]
857     ReadOnly = False
858     Required = False
859     Size = 31
860     end
861     object AttachmentsRDBBYTES_PER_CHARACTER: TIBSmallintField
862     FieldKind = fkData
863     FieldName = 'RDB$BYTES_PER_CHARACTER'
864     Index = 28
865     LookupCache = False
866     ProviderFlags = [pfInUpdate, pfInWhere]
867     ReadOnly = False
868     Required = False
869     end
870     object AttachmentsRDBSECURITY_CLASS: TIBStringField
871     FieldKind = fkData
872     FieldName = 'RDB$SECURITY_CLASS'
873     Index = 29
874     LookupCache = False
875     ProviderFlags = [pfInUpdate, pfInWhere]
876     ReadOnly = False
877     Required = False
878     Size = 31
879     end
880     object AttachmentsRDBOWNER_NAME: TIBStringField
881     FieldKind = fkData
882     FieldName = 'RDB$OWNER_NAME'
883     Index = 30
884     LookupCache = False
885     ProviderFlags = [pfInUpdate, pfInWhere]
886     ReadOnly = False
887     Required = False
888     Size = 31
889     end
890     end
891     object AttUpdate: TIBUpdate
892     OnApplyUpdates = AttUpdateApplyUpdates
893     left = 376
894     top = 432
895     end
896     object AdminUserQuery: TIBSQL
897     Database = IBDatabase1
898     GenerateParamNames = False
899     UniqueParamNames = False
900     ParamCheck = True
901     SQL.Strings = (
902     'Select A.SEC$ADMIN From SEC$USERS A'
903     'Where SEC$USER_NAME = CURRENT_USER'
904     )
905     Transaction = CurrentTransaction
906     left = 424
907     top = 496
908     end
909     object DBTables: TIBQuery
910     AllowAutoActivateTransaction = False
911     Database = IBDatabase1
912     Transaction = CurrentTransaction
913     BufferChunks = 1000
914     CachedUpdates = False
915     GenerateParamNames = False
916     GeneratorField.ApplyOnEvent = gaeOnNewRecord
917     SQL.Strings = (
918     'Select Trim(A.RDB$RELATION_NAME) as RDB$RELATION_NAME, 1 as Selected'
919     ' From RDB$RELATIONS A'
920     ' Where RDB$SYSTEM_FLAG = 0'
921     ' order by 1'
922     )
923     Params = <>
924     UpdateObject = DBTablesUpdate
925     DataSetCloseAction = dcDiscardChanges
926     left = 520
927     top = 488
928     end
929     object DBTablesUpdate: TIBUpdate
930     RefreshSQL.Strings = (
931     ''
932     )
933     OnApplyUpdates = DBTablesUpdateApplyUpdates
934     left = 592
935     top = 480
936     end
937     object AuthMappings: TIBQuery
938     AllowAutoActivateTransaction = False
939     Database = IBDatabase1
940     Transaction = CurrentTransaction
941     BufferChunks = 1000
942     CachedUpdates = False
943     GenerateParamNames = False
944     GeneratorField.ApplyOnEvent = gaeOnNewRecord
945     SQL.Strings = (
946     'SELECT r.RDB$DB_KEY, cast(''Local'' as VarChar(6)) as MAPTYPE, r.RDB$MAP_NAME,'
947     ' Case'
948     ' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is not null then cast (''Plugin '' || r.RDB$MAP_PLUGIN as VarChar(20))'
949     ' When r.RDB$MAP_USING = ''P'' and r.RDB$MAP_PLUGIN is null then ''Any Plugin'''
950     ' When r.RDB$MAP_USING = ''S'' then ''Any Plugin Serverwide'''
951     ' When r.RDB$MAP_USING = ''M'' then ''Mapping'''
952     ' When r.RDB$MAP_USING = ''*'' then ''*'''
953     ' else'
954     ' ''Using '' || r.RDB$MAP_USING || '','' || coalesce(r.RDB$MAP_PLUGIN,'''') End as MAP_USING,'
955     ' r.RDB$MAP_USING, r.RDB$MAP_PLUGIN,'
956     ' r.RDB$MAP_DB, r.RDB$MAP_FROM_TYPE, r.RDB$MAP_FROM,'
957     ' Trim(r.RDB$MAP_FROM_TYPE) || '': '' || Trim(r.RDB$MAP_FROM) as MAP_FROM,'
958     ' r.RDB$MAP_TO_TYPE,'
959     ' T.RDB$TYPE_NAME as MAP_TO_TYPE, r.RDB$MAP_TO,'
960     ' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.RDB$MAP_TO) as MAP_TO,'
961     ' r.RDB$SYSTEM_FLAG, r.RDB$DESCRIPTION'
962     'FROM RDB$AUTH_MAPPING r'
963     'JOIN RDB$TYPES T On T.RDB$TYPE = r.RDB$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE'''
964     'UNION'
965     'SELECT r.RDB$DB_KEY, ''Global'', r.SEC$MAP_NAME,'
966     ' Case'
967     ' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is not null then cast (''Plugin '' || r.SEC$MAP_PLUGIN as VarChar(20))'
968     ' When r.SEC$MAP_USING = ''P'' and r.SEC$MAP_PLUGIN is null then ''Any Plugin'''
969     ' When r.SEC$MAP_USING = ''S'' then ''Any Plugin Serverwide'''
970     ' When r.SEC$MAP_USING = ''M'' then ''Mapping'''
971     ' When r.SEC$MAP_USING = ''*'' then ''*'''
972     ' else'
973     ' ''Using '' || r.SEC$MAP_USING || '','' || coalesce(r.SEC$MAP_PLUGIN,'''') End as MAP_USING,'
974     ' r.SEC$MAP_USING, r.SEC$MAP_PLUGIN,'
975     ' r.SEC$MAP_DB, r.SEC$MAP_FROM_TYPE, r.SEC$MAP_FROM,'
976     ' Trim(r.SEC$MAP_FROM_TYPE) || '': '' || Trim(r.SEC$MAP_FROM) as MAP_FROM,'
977     ' r.SEC$MAP_TO_TYPE,'
978     ' T.RDB$TYPE_NAME as MAP_TO_TYPE,r.SEC$MAP_TO,'
979     ' Trim(T.RDB$TYPE_NAME) || '': '' || Trim(r.SEC$MAP_TO) as MAP_TO,'
980     ' null,null'
981     'FROM SEC$GLOBAL_AUTH_MAPPING r'
982     'JOIN RDB$TYPES T On T.RDB$TYPE = r.SEC$MAP_TO_TYPE and T.RDB$FIELD_NAME = ''RDB$MAP_TO_TYPE'''
983     ''
984     )
985     Params = <>
986     DataSetCloseAction = dcDiscardChanges
987     left = 657
988     top = 118
989     end
990     object AccessRights: TIBQuery
991     AllowAutoActivateTransaction = False
992     Database = IBDatabase1
993     Transaction = CurrentTransaction
994     OnCalcFields = AccessRightsCalcFields
995     BufferChunks = 1000
996     CachedUpdates = False
997     GenerateParamNames = False
998     GeneratorField.ApplyOnEvent = gaeOnNewRecord
999     SQL.Strings = (
1000     'with recursive AccessRight as ('
1001     'Select UP.RDB$USER as SUBJECT_NAME,'
1002     ' UP.RDB$USER_TYPE as SUBJECT_TYPE,'
1003     ' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,'
1004     ' UP.RDB$RELATION_NAME as OBJECT_NAME,'
1005     ' T2.RDB$TYPE_NAME as OBJECT_TYPE_NAME,'
1006     ' UP.RDB$GRANTOR as GRANTOR,'
1007     ' UP.RDB$GRANT_OPTION as GRANT_OPTION,'
1008     ' List(Trim(UP.RDB$PRIVILEGE)) as Granted_Privileges,'
1009     ' count (C.RDB$DB_KEY) as ChildCount'
1010     ' From RDB$USER_PRIVILEGES UP'
1011     ' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1012     ' Left Outer JOIN RDB$USER_PRIVILEGES C On C.RDB$USER_TYPE = UP.RDB$OBJECT_TYPE and C.RDB$USER = UP.RDB$RELATION_NAME'
1013     ' Where UP.RDB$USER <> ''SYSDBA'''
1014     ' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,'
1015     ' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, UP.RDB$GRANT_OPTION,'
1016     ' T2.RDB$TYPE_NAME'
1017     ' ),'
1018     ''
1019     ' AccessRights as ('
1020     ' select cast(Trim(SUBJECT_NAME) || SUBJECT_TYPE as Char(33)) as ID,SUBJECT_TYPE, SUBJECT_NAME,'
1021     ' OBJECT_TYPE, OBJECT_NAME, OBJECT_TYPE_NAME, Granted_Privileges,GRANTOR, GRANT_OPTION,'
1022     ' cast(NULL as Char(33) ) as Parent, ChildCount'
1023     ' From AccessRight'
1024     ' UNION all'
1025     ' Select Trim(B.SUBJECT_NAME) || B.SUBJECT_TYPE as ID, B.SUBJECT_TYPE, B.SUBJECT_NAME,'
1026     ' B.OBJECT_TYPE, B.OBJECT_NAME, B.OBJECT_TYPE_NAME, B.Granted_Privileges, B.GRANTOR, B.GRANT_OPTION,'
1027     ' A.ID as Parent,B.ChildCount'
1028     ' From AccessRight B'
1029     ' JOIN AccessRights A On A.OBJECT_TYPE = B.SUBJECT_TYPE and A.OBJECT_NAME = B.SUBJECT_NAME'
1030     ' )'
1031     ''
1032     'Select *'
1033     'From ('
1034     'Select A.ID as ID, Trim(A.SUBJECT_NAME )as SUBJECT_NAME, A.SUBJECT_TYPE as SUBJECT_TYPE,'
1035     ' case When A.Parent is NULL then Trim(T.RDB$TYPE_NAME) || A.SUBJECT_TYPE Else A.Parent End as Parent,'
1036     ' sum(A.ChildCount) as ChildCount'
1037     ' from AccessRights A'
1038     ' JOIN RDB$TYPES T On T.RDB$TYPE = A.SUBJECT_TYPE and RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1039     ' Group By A.ID, A.SUBJECT_NAME, A.SUBJECT_TYPE, A.Parent, T.RDB$TYPE_NAME'
1040     'UNION'
1041     'SELECT Trim(r.RDB$TYPE_NAME) || r.RDB$TYPE as ID, Trim(r.RDB$TYPE_NAME) || ''S'' as SUBJECT_NAME,-r.RDB$TYPE,'
1042     ' NULL,1'
1043     'FROM RDB$TYPES r Where RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1044     'and Exists(Select * from RDB$USER_PRIVILEGES Where RDB$USER_TYPE = r.RDB$TYPE)'
1045     ''
1046     ' )'
1047     ''
1048     )
1049     Params = <>
1050     DataSetCloseAction = dcDiscardChanges
1051     left = 648
1052     top = 264
1053     object AccessRightsID: TIBStringField
1054     FieldKind = fkData
1055     FieldName = 'ID'
1056     Index = 0
1057     LookupCache = False
1058     ProviderFlags = [pfInUpdate, pfInWhere]
1059     ReadOnly = False
1060     Required = False
1061     Size = 37
1062     end
1063     object AccessRightsSUBJECT_NAME: TIBStringField
1064     FieldKind = fkData
1065     FieldName = 'SUBJECT_NAME'
1066     Index = 1
1067     LookupCache = False
1068     ProviderFlags = [pfInUpdate, pfInWhere]
1069     ReadOnly = False
1070     Required = False
1071     Size = 32
1072     end
1073     object AccessRightsSUBJECT_TYPE: TIBSmallintField
1074     FieldKind = fkData
1075     FieldName = 'SUBJECT_TYPE'
1076     Index = 2
1077     LookupCache = False
1078     ProviderFlags = [pfInUpdate, pfInWhere]
1079     ReadOnly = False
1080     Required = False
1081     end
1082     object AccessRightsPARENT: TIBStringField
1083     FieldKind = fkData
1084     FieldName = 'PARENT'
1085     Index = 3
1086     LookupCache = False
1087     ProviderFlags = [pfInUpdate, pfInWhere]
1088     ReadOnly = False
1089     Required = False
1090     Size = 37
1091     end
1092     object AccessRightsCHILDCOUNT: TIBLargeIntField
1093     FieldKind = fkData
1094     FieldName = 'CHILDCOUNT'
1095     Index = 4
1096     LookupCache = False
1097     ProviderFlags = [pfInUpdate, pfInWhere]
1098     ReadOnly = False
1099     Required = False
1100     end
1101     object AccessRightsImageIndex: TLongintField
1102     FieldKind = fkCalculated
1103     FieldName = 'ImageIndex'
1104     Index = 5
1105     LookupCache = False
1106     ProviderFlags = [pfInUpdate, pfInWhere]
1107     ReadOnly = False
1108     Required = False
1109     end
1110     object AccessRightsDisplayName: TStringField
1111     FieldKind = fkCalculated
1112     FieldName = 'DisplayName'
1113     Index = 6
1114     LookupCache = False
1115     ProviderFlags = [pfInUpdate, pfInWhere]
1116     ReadOnly = False
1117     Required = False
1118     Size = 64
1119     end
1120     end
1121     object SubjectAccessRights: TIBQuery
1122     AllowAutoActivateTransaction = False
1123     Database = IBDatabase1
1124     Transaction = CurrentTransaction
1125     BeforeOpen = SubjectAccessRightsBeforeOpen
1126     BufferChunks = 1000
1127     CachedUpdates = False
1128     GenerateParamNames = False
1129     GeneratorField.ApplyOnEvent = gaeOnNewRecord
1130     SQL.Strings = (
1131     'Select UP.RDB$USER as SUBJECT_NAME,'
1132     ' UP.RDB$USER_TYPE as SUBJECT_TYPE,'
1133     ' T1.RDB$TYPE_NAME as SUBJECT_TYPE_NAME,'
1134     ' UP.RDB$OBJECT_TYPE as OBJECT_TYPE,'
1135     ' case T2.RDB$TYPE_NAME'
1136     ' When ''RELATION'' then ''TABLE'''
1137     ' When ''FIELD'' then ''DOMAIN'''
1138     ' Else T2.RDB$TYPE_NAME End as OBJECT_TYPE_NAME,'
1139     ' UP.RDB$RELATION_NAME as OBJECT_NAME,'
1140     ' List(DISTINCT Trim(RDB$PRIVILEGE)) as Granted_Privileges,'
1141     ' UC.Update_Columns,'
1142     ' RC.Reference_Columns,'
1143     ' UP.RDB$GRANTOR as GrantedBy,'
1144     ' coalesce(UP.RDB$GRANT_OPTION,0) as GRANT_OPTION'
1145     ' From RDB$USER_PRIVILEGES UP'
1146     ' JOIN RDB$TYPES T1 On T1.RDB$TYPE = UP.RDB$USER_TYPE and T1.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1147     ' JOIN RDB$TYPES T2 On T2.RDB$TYPE = UP.RDB$OBJECT_TYPE and T2.RDB$FIELD_NAME = ''RDB$OBJECT_TYPE'''
1148     ' Left Outer JOIN ('
1149     ' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,'
1150     ' List(Trim(RDB$FIELD_NAME)) as Update_Columns'
1151     ' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''U'''
1152     ' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) UC'
1153     ' On UC.RDB$USER = UP.RDB$USER and UC.RDB$USER_TYPE = UP.RDB$USER_TYPE and'
1154     ' UC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and UC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME'
1155     ' Left Outer JOIN ('
1156     ' Select RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME,'
1157     ' List(Trim(RDB$FIELD_NAME)) as Reference_Columns'
1158     ' From RDB$USER_PRIVILEGES Where RDB$PRIVILEGE = ''R'''
1159     ' Group By RDB$USER, RDB$USER_TYPE, RDB$OBJECT_TYPE, RDB$RELATION_NAME) RC'
1160     ' On RC.RDB$USER = UP.RDB$USER and RC.RDB$USER_TYPE = UP.RDB$USER_TYPE and'
1161     ' RC.RDB$OBJECT_TYPE = UP.RDB$OBJECT_TYPE and RC.RDB$RELATION_NAME = UP.RDB$RELATION_NAME'
1162     ' Where Trim(UP.RDB$USER) || UP.RDB$USER_TYPE = :ID and'
1163     ' (not (UP.RDB$OBJECT_TYPE in (0,9,13)) or'
1164     ' (UP.RDB$OBJECT_TYPE in (0,13) and'
1165     ' not Exists(Select * from RDB$RELATIONS Where RDB$RELATION_NAME = UP.RDB$RELATION_NAME and RDB$SYSTEM_FLAG <> 0)) or'
1166     ' (UP.RDB$OBJECT_TYPE = 9 and UP.RDB$RELATION_NAME not Similar to ''RDB$%|SEC$%|MON$%|SQL$%'')'
1167     ' )'
1168     ' Group BY UP.RDB$USER,UP.RDB$USER_TYPE,UP.RDB$OBJECT_TYPE,'
1169     ' UP.RDB$RELATION_NAME, UP.RDB$GRANTOR, RDB$GRANT_OPTION,T1.RDB$TYPE_NAME,'
1170     ' T2.RDB$TYPE_NAME, UC.Update_Columns, RC.Reference_Columns'
1171     ''
1172     )
1173     Params = <
1174     item
1175     DataType = ftUnknown
1176     Name = 'ID'
1177     ParamType = ptInput
1178     end>
1179     DataSetCloseAction = dcDiscardChanges
1180     left = 648
1181     top = 336
1182     ParamData = <
1183     item
1184     DataType = ftUnknown
1185     Name = 'ID'
1186     ParamType = ptInput
1187     end>
1188     end
1189 tony 209 object IBXServicesConnection1: TIBXServicesConnection
1190     Connected = False
1191     OnLogin = IBXServicesConnection1Login
1192     Params.Strings = (
1193     'sql_role_name=RDB$ADMIN'
1194     )
1195     TraceFlags = []
1196     left = 640
1197     top = 48
1198     end
1199     object IBStatisticalService1: TIBXStatisticalService
1200     ServicesConnection = IBXServicesConnection1
1201     TraceFlags = []
1202     Options = [HeaderPages]
1203     left = 48
1204     top = 287
1205     end
1206     object IBConfigService1: TIBXConfigService
1207     ServicesConnection = IBXServicesConnection1
1208     TraceFlags = []
1209     left = 168
1210     top = 283
1211     end
1212     object IBServerProperties1: TIBXServerProperties
1213     ServicesConnection = IBXServicesConnection1
1214     TraceFlags = []
1215     left = 40
1216     top = 365
1217     end
1218     object IBLogService1: TIBXLogService
1219     ServicesConnection = IBXServicesConnection1
1220     TraceFlags = []
1221     left = 168
1222     top = 365
1223     end
1224     object IBSecurityService1: TIBXSecurityService
1225     ServicesConnection = IBXServicesConnection1
1226     TraceFlags = []
1227     UserID = 0
1228     GroupID = 0
1229     AdminRole = False
1230     left = 36
1231     top = 437
1232     end
1233     object IBValidationService1: TIBXValidationService
1234     ServicesConnection = IBXServicesConnection1
1235     TraceFlags = []
1236     OnGetNextLine = IBValidationService1GetNextLine
1237     Options = [ValidateFull]
1238     left = 632
1239     top = 416
1240     end
1241     object IBOnlineValidationService1: TIBXOnlineValidationService
1242     ServicesConnection = IBXServicesConnection1
1243     TraceFlags = []
1244     OnGetNextLine = IBValidationService1GetNextLine
1245     left = 40
1246     top = 503
1247     end
1248     object LegacyUserList: TIBXServicesUserList
1249     FieldDefs = <
1250     item
1251     Name = 'UserID'
1252     DataType = ftInteger
1253     Precision = -1
1254     end
1255     item
1256     Name = 'GroupID'
1257     DataType = ftInteger
1258     Precision = -1
1259     end
1260     item
1261     Name = 'SEC$USER_NAME'
1262     DataType = ftString
1263     Precision = -1
1264     Size = 31
1265     end
1266     item
1267     Name = 'SEC$FIRST_NAME'
1268     DataType = ftString
1269     Precision = -1
1270     Size = 32
1271     end
1272     item
1273     Name = 'SEC$MIDDLE_NAME'
1274     DataType = ftString
1275     Precision = -1
1276     Size = 32
1277     end
1278     item
1279     Name = 'SEC$LAST_NAME'
1280     DataType = ftString
1281     Precision = -1
1282     Size = 32
1283     end
1284     item
1285     Name = 'SEC$PASSWORD'
1286     DataType = ftString
1287     Precision = -1
1288     Size = 32
1289     end
1290     item
1291     Name = 'SEC$ADMIN'
1292     DataType = ftBoolean
1293     Precision = -1
1294     end
1295     item
1296     Name = 'SEC$PLUGIN'
1297     DataType = ftString
1298     Size = 21
1299     end
1300     item
1301     Name = 'SEC$ACTIVE'
1302     DataType = ftBoolean
1303     end
1304     item
1305     Name = 'LOGGEDIN'
1306     DataType = ftBoolean
1307     end
1308     item
1309     Name = 'DBCREATOR'
1310     DataType = ftBoolean
1311     end>
1312     AfterOpen = LegacyUserListAfterOpen
1313     BeforeClose = LegacyUserListBeforeClose
1314     AfterInsert = UserListAfterInsert
1315     Source = IBSecurityService1
1316     left = 167
1317     top = 438
1318     end
1319     object InLimboList: TIBXServicesLimboTransactionsList
1320     FieldDefs = <
1321     item
1322     Name = 'TransactionID'
1323     DataType = ftInteger
1324     Precision = -1
1325     end
1326     item
1327     Name = 'TransactionType'
1328     DataType = ftString
1329     Precision = -1
1330     Size = 16
1331     end
1332     item
1333     Name = 'HostSite'
1334     DataType = ftString
1335     Precision = -1
1336     Size = 256
1337     end
1338     item
1339     Name = 'RemoteSite'
1340     DataType = ftString
1341     Precision = -1
1342     Size = 256
1343     end
1344     item
1345     Name = 'DatabasePath'
1346     DataType = ftString
1347     Precision = -1
1348     Size = 256
1349     end
1350     item
1351     Name = 'State'
1352     DataType = ftString
1353     Precision = -1
1354     Size = 32
1355     end
1356     item
1357     Name = 'RecommendedAction'
1358     DataType = ftString
1359     Precision = -1
1360     Size = 32
1361     end
1362     item
1363     Name = 'RequestedAction'
1364     DataType = ftString
1365     Precision = -1
1366     Size = 32
1367     end>
1368     Source = IBLimboTrans
1369     left = 296
1370     top = 496
1371     end
1372     object IBLimboTrans: TIBXLimboTransactionResolutionService
1373     ServicesConnection = IBXServicesConnection1
1374     TraceFlags = []
1375     GlobalAction = CommitGlobal
1376     left = 176
1377     top = 496
1378     end
1379 tony 158 end