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 208 by tony, Thu Mar 1 11:23:33 2018 UTC vs.
Revision 209 by tony, Wed Mar 14 12:48:51 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
8 <    Connected = False
8 >    Connected = True
9      AfterConnect = IBDatabase1AfterConnect
10      AfterDisconnect = IBDatabase1AfterDisconnect
11      BeforeDisconnect = IBDatabase1BeforeDisconnect
# Line 260 | Line 260 | object DatabaseData: TDatabaseData
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
263    object TableNameLookup: TIBQuery
264      AllowAutoActivateTransaction = False
265      Database = IBDatabase1
# Line 293 | Line 278 | object DatabaseData: TDatabaseData
278      left = 288
279      top = 283
280    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
281    object UserList: TIBQuery
282      AllowAutoActivateTransaction = False
283      Database = IBDatabase1
# Line 322 | Line 293 | object DatabaseData: TDatabaseData
293      GeneratorField.ApplyOnEvent = gaeOnNewRecord
294      SQL.Strings = (
295        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
296 <      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as UserName, A.SEC$MIDDLE_NAME,'
296 >      'A.SEC$ACTIVE, Trim(A.SEC$USER_NAME) as SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
297        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
298 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
298 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
299        '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'
# Line 400 | Line 371 | object DatabaseData: TDatabaseData
371        Required = False
372        Size = 32
373      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
374      object UserListLOGGEDIN: TBooleanField
375        FieldKind = fkData
376        FieldName = 'LOGGEDIN'
377 <      Index = 8
377 >      Index = 6
378        LookupCache = False
379        ProviderFlags = [pfInUpdate, pfInWhere]
380        ReadOnly = False
# Line 433 | Line 384 | object DatabaseData: TDatabaseData
384      object UserListCURRENT_CONNECTION: TIBLargeIntField
385        FieldKind = fkData
386        FieldName = 'CURRENT_CONNECTION'
387 <      Index = 9
387 >      Index = 7
388        LookupCache = False
389        ProviderFlags = [pfInUpdate, pfInWhere]
390        ReadOnly = False
# Line 442 | Line 393 | object DatabaseData: TDatabaseData
393      object UserListDBCREATOR: TBooleanField
394        FieldKind = fkData
395        FieldName = 'DBCREATOR'
396 <      Index = 10
396 >      Index = 8
397        LookupCache = False
398        ProviderFlags = [pfInUpdate, pfInWhere]
399        ReadOnly = False
# Line 452 | Line 403 | object DatabaseData: TDatabaseData
403      object UserListUSERID: TLongintField
404        FieldKind = fkCalculated
405        FieldName = 'USERID'
406 <      Index = 11
406 >      Index = 9
407        LookupCache = False
408        ProviderFlags = [pfInUpdate, pfInWhere]
409        ReadOnly = False
# Line 461 | Line 412 | object DatabaseData: TDatabaseData
412      object UserListGROUPID: TLongintField
413        FieldKind = fkCalculated
414        FieldName = 'GROUPID'
415 +      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        Index = 12
435        LookupCache = False
436        ProviderFlags = [pfInUpdate, pfInWhere]
437        ReadOnly = False
438        Required = False
439 +      Size = 31
440      end
441    end
442    object UpdateUsers: TIBUpdate
443      RefreshSQL.Strings = (
444        'Select A.SEC$DESCRIPTION, A.SEC$PLUGIN, A.SEC$ADMIN,'
445 <      'A.SEC$ACTIVE, A.SEC$USER_NAME as UserName, A.SEC$MIDDLE_NAME,'
445 >      'A.SEC$ACTIVE, A.SEC$USER_NAME, A.SEC$MIDDLE_NAME,'
446        'A.SEC$FIRST_NAME, A.SEC$LAST_NAME,'
447 <      'cast(NULL as VarChar(32)) as USERPASSWORD, CURRENT_CONNECTION,'
447 >      'cast(NULL as VarChar(32)) as SEC$PASSWORD, CURRENT_CONNECTION,'
448        '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 <      'Where  A.SEC$USER_NAME = :UserName'
454 >      'Where  A.SEC$USER_NAME = :SEC$USER_NAME'
455      )
456      OnApplyUpdates = UpdateUsersApplyUpdates
457      left = 544
# Line 498 | Line 469 | object DatabaseData: TDatabaseData
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 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
472 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
473        '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 <      'Where RDB$USER = :USERNAME and RDB$PRIVILEGE = ''M'''
477 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
478        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME '
479        ''
480      )
481      Params = <    
482        item
483          DataType = ftUnknown
484 <        Name = 'USERNAME'
484 >        Name = 'SEC$USER_NAME'
485          ParamType = ptInput
486        end>
487      UpdateObject = UpdateUserRoles
# Line 520 | Line 491 | object DatabaseData: TDatabaseData
491      ParamData = <    
492        item
493          DataType = ftUnknown
494 <        Name = 'USERNAME'
494 >        Name = 'SEC$USER_NAME'
495          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 <      'P.RDB$USER,RDB$PRIVILEGE,   cast(:USERNAME as VARCHAR(32)) as USERNAME,'
501 >      'P.RDB$USER,RDB$PRIVILEGE,   cast(:SEC$USER_NAME as VARCHAR(32)) as SEC$USER_NAME,'
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'''
506 >      'Where RDB$USER = :SEC$USER_NAME and RDB$PRIVILEGE = ''M'''
507        ') P  On P.RDB$RELATION_NAME = r.RDB$ROLE_NAME'
508        'Where  r.RDB$ROLE_NAME = :RDB$ROLE_NAME'
509      )
# Line 549 | Line 520 | object DatabaseData: TDatabaseData
520      AllowAutoActivateTransaction = False
521      Database = IBDatabase1
522      Transaction = CurrentTransaction
552    AfterDelete = UserListAfterPost
523      AfterInsert = UserTagsAfterInsert
554    AfterPost = UserListAfterPost
524      BufferChunks = 1000
525      CachedUpdates = False
526      DataSource = UserListSource
# Line 561 | Line 530 | object DatabaseData: TDatabaseData
530        'Select a.SEC$USER_NAME, A.SEC$KEY, A.SEC$VALUE'
531        'From'
532        'SEC$USER_ATTRIBUTES  A'
533 <      'Where SEC$USER_NAME = :UserName'
533 >      'Where SEC$USER_NAME = :SEC$USER_NAME'
534      )
535      Params = <    
536        item
537          DataType = ftUnknown
538 <        Name = 'UserName'
538 >        Name = 'SEC$USER_NAME'
539          ParamType = ptInput
540        end>
541      UpdateObject = TagsUpdate
# Line 576 | Line 545 | object DatabaseData: TDatabaseData
545      ParamData = <    
546        item
547          DataType = ftUnknown
548 <        Name = 'UserName'
548 >        Name = 'SEC$USER_NAME'
549          ParamType = ptInput
550        end>
551    end
# Line 596 | Line 565 | object DatabaseData: TDatabaseData
565      left = 304
566      top = 360
567    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
568    object Attachments: TIBQuery
569      AllowAutoActivateTransaction = False
570      Database = IBDatabase1
# Line 1001 | Line 893 | object DatabaseData: TDatabaseData
893      left = 376
894      top = 432
895    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
896    object AdminUserQuery: TIBSQL
897      Database = IBDatabase1
898      GenerateParamNames = False
# Line 1353 | Line 1186 | object DatabaseData: TDatabaseData
1186          ParamType = ptInput
1187        end>
1188    end
1189 +  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   end

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines