PDA

Ver la Versión Completa : Problemas con una red en W7


Angel.Matilla
09-05-2014, 18:15:04
Tengo una aplicación desarrollada hace años en BCB 5 Profesional y ejecutándose sin problema en red contra tablas Paradox desde Windows XP. No he tenido tiempo de migrarla a una versión superior de Builder y ahora me ha surgido un problema: El usuario de la misma ha adquirido máquinas nuevas con Windows 7 32 bits (¡loado sea el vendedor!) y ahora no logro que se conecte la aplicación desde esa máquina nueva al servidor de la base de datos. En local funciona sin problemas, pero no sé si me falta alguna librería para poder conectarme en red desde W7.

oscarac
10-05-2014, 02:29:43
y como es que te conectas a las otras computadoras?
mapeas unidades?

Angel.Matilla
10-05-2014, 10:12:22
Perdón por el olvido. Me conecto a la base de datos mediante un TDatabase y un Tsession; las propiedades del srevidor están guardadas en un fichero ini. El código que uso es este:
char cEntorno[128], cTablas[128], cAcceso[128];

memset(cEntorno, '\0', sizeof(cEntorno));
memset(cAcceso , '\0', sizeof(cAcceso));
memset(cTablas , '\0', sizeof(cTablas));

GetPrivateProfileString("DATOS", "Entorno", "C:\\DatAfi21\\Gia.ini", cEntorno, sizeof(cEntorno), (ExtractFilePath(Application->ExeName) + "PtoDat21.ini").c_str());
GetPrivateProfileString("DATOS", "Acceso" , "C:\\DatAfi21\\Acceso" , cAcceso , sizeof(cAcceso) , (ExtractFilePath(Application->ExeName) + "PtoDat21.ini").c_str());
GetPrivateProfileString("DATOS", "Tablas" , "C:\\DatAfi21\\Tablas" , cTablas , sizeof(cTablas) , (ExtractFilePath(Application->ExeName) + "PtoDat21.ini").c_str());
try
{
fPersonas->Session1->PrivateDir = ExtractFilePath(Application->ExeName);
fPersonas->Session1->ConfigMode = cmSession;
fPersonas->Session1->NetFileDir = cAcceso;
}
catch(...)
{
Application->Terminate();
return;
}

try
{
fPersonas->Session1->AddStandardAlias("dGesAfi21", cTablas, "PARADOX");
}
catch(...)
{
}

// *************************************************************************
// * Se activan la sesión, la base de datos y las tablas que correspondan. *
// *************************************************************************

fPersonas->Session1->Active = true;
fPersonas->Database1->Connected = true;
fPersonas->Session1->OpenDatabase(fPersonas->Database1->DatabaseName);

Casimiro Notevi
10-05-2014, 11:18:59
¿No hay mensaje de error ni nada?

Angel.Matilla
10-05-2014, 12:14:25
Simplemente que no se puede conectar al servidor, pero es un mensaje generado por mi en el try...catch en que están las tres líneas de propiedades de Session1. Es que hay algunos problemas añadidos: No puedo depurar el programa, que sería lo lógico, porque no voy a montar todo Builder 5 más los fuentes en el equipo del cliente. Por otra parte yo no puedo hacer la depuración en casa porque no tengo una red.

marcoszorrilla
10-05-2014, 13:17:09
Si usas el BDE, en la máquina nueva instálalo en una carpeta que no cuelgue de Archivos de programa yo lo instalaría en una carpeta creada dentro de la de mi aplicación;

C:MiAplicacion\BDE

Suerte.

Un Saludo.

Angel.Matilla
12-05-2014, 11:01:25
Probaré esta última sugerencia.

Angel.Matilla
13-05-2014, 11:54:58
Creo que ya sé cual es el problema. Se trata, simplemente, de un problema de privilegios de usuario porque lanzando la aplicación en una máquina con usuario administrador se ejecuta sin ningún problema, y esto tiene que resolverlo quien ha instalado los nuevos equipos. Gracias a todos por las ideas aportadas.