Mensaje    Asunto: Usuarios Activos en IB??? Responder citando

Esta línea siempre falla siempre me dice que no está activo el usuario, por qué?
Necesito saber antes de conectar a un usuario si éste usuario ya está activo (conectado al BDD) en otro terminal.
Utilizo Interbase 2009 y C++ Builder 2010
ALGUNA SUGERENCIA?
Gracias de antemano

Código:

            //Intento conectar con IBDatabase2 que tiene asignado al administrador SYSDBA ,para comprueba Usuarios y Roles
                if(IBDatabase2->Tag > 2)
                    IBDatabase2->Open();

            if(IBDatabase2->Connected)
            {
                                                           if(fV->SV->DatSetPCNumeroTerminal_int > 1)
                {
                    String N = CrDat(L"òöðù") + String(fV->SV->DatSetPCNumeroTerminal_int);//Desde TPV_2 hasta TPV_25
                    IBSecurityService->ServerName = fV->SV->DatSetPCNombreServidor_Ncr;
                    IBSecurityService->Active = true;
                    bool Usuario_Existe = false;
                    IBSecurityService->DisplayUsers();
                    for(int I = 0; I <IBSecurityService>UserInfoCount; I++)
                    {
                        if(IBSecurityService->UserInfo[I]->UserName == N)
                        {
                            //Comprobar si el usuario está activo por otro Terminal
                            if(IBSecurityService->UserInfo[I]->ActiveUser)//->->->->->->->->->->->->->->Esta Linea siempre falla
                            {
                                fV->MenDialogo("El Usuario de Interbase: " + IBSecurityService->UserInfo[I]->UserName
                                + "\nEstá Activo en otro Terminal, saldrá del Programa.", L"!");

                                IBDatabase2->Close();
                                Application->Terminate();// Salir del programa con Error
                                exit(EXIT_SUCCESS);
                            }
                            else
                                Usuario_Existe = true;
                        }
                    }

                    if(!Usuario_Existe)//Si no Existe el Usuario, Añadir Usuario
                    {
                        IBSecurityService->UserName = N;
                        IBSecurityService->Password = fV->SV->CrIbUserKey;
                        IBSecurityService->UserID = fV->SV->DatSetPCNumeroTerminal_int;
                        IBSecurityService->AddUser();//Tengo que comprobar que el usuario no existe

                        IBSQLExec->Database = IBDatabase2;//Este objeto será el encargado de asignar los ROLES a los Usuarios
                        IBSQLExec->Transaction = IBTransaction2;
                        //Asignar ROL a usuario desde el administrador SYSDBA y abrir base de datos con el usuario PDAxx
                        MDatos->IBSQLExec->Close();
                        MDatos->IBSQLExec->SQL->Clear();
                        MDatos->IBSQLExec->SQL->Add(L"GRANT TPVBARMAN TO " + N + " WITH ADMIN OPTION;");
                        MDatos->IBSQLExec->ExecQuery();
                        MDatos->IBTransaction2->CommitRetaining();
                        MDatos->IBSQLExec->Close();
                        IBSQLExec->Database = IBDatabase;//Cuando Desconecto el IBDatabase2 lo asigno otra vez al IBDatabase(1)
                        IBSQLExec->Transaction = IBTransaction;
                    }

                              IBSecurityService->Active = false;
                }

                IBDatabase2->Connected = false;
            }

            //******************************************************************

_________________
Muchos hombres no se equivocan jamás porque no se proponen nada razonable.