Ver Mensaje Individual
  #9  
Antiguo 12-04-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Vuestra sugerencia de usar TIBSecurityService, como no podía ser de otra forma, funciona a la perfección pero estoy teniendo otro problema.

Estoy migrando los datos de una base de datos Paradox. En concreto esta tabla:
Usuario --- Clave
MARIA ----- 6814
GEMA ------ GEMITA
ENRIQUE --- SISI
PEÑI ------ 45005
FEDERICO -- FM


Para ello estoy usando este código:
Código:
for (; !tTabla->Eof; tTabla->Next())
{
     SecurityService->Active   = false;
     SecurityService->UserName = QuitaAcento(UpperCase(tTabla->FieldByName("Nombre")->AsString));
     SecurityService->Password = QuitaAcento(UpperCase(tTabla->FieldByName("Clave")->AsString));
     SecurityService->Active   = true;
     SecurityService->AddUser();

     Application->ProcessMessages();
}

QuitaAcento
es una función que hace eso: eliminar acentos y eñes. Esto lo hago al principio, al crear la base de datos, y es la primera tabla que cargo y antes de hacer nada. Sin embargo al dar de alta al tercero de los usarios (otras veces con el segundo) me da un error de violación de integridad:


Lo curioso es que si hago una consulta a las tablas del sistema
Código PHP:
SELECT DISTINCT RDB$USER FROM RDB$USER_PRIVILEGES ORDER BY RDB$USER 
No me aparecen ninguno de los tres usuarios que ya han pasado por el bucle y si aparece ese error al menos debería mostrarse precisamente el que lo produce.

Última edición por Angel.Matilla fecha: 12-04-2017 a las 17:56:54.
Responder Con Cita