Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Sobre DEL#.MB y Terminal Server. (https://www.clubdelphi.com/foros/showthread.php?t=62724)

afxe 10-01-2009 12:56:39

Sobre DEL#.MB y Terminal Server.
 
Hola a todos. :p

Delphy 7 + BDE + Firebird 2.0

He estado buscando información sobre los archivos temporales que crea el BDE, llamados DEL#.MB y que se crean en el directorio de trabajo de la aplicación. Nunca les he dado importancia, no suelen ocupar espacio y normalmente no se van acumulando:confused:. Sin embargo, me he visto obligado a poner la aplicación corriendo en un Windows 2003 y Terminal Server, para accesos remotos de sucursales (el cliente está en plena expasión). El caso es que cuando dos usuarios de T.S. se conectan al mismo directorio y el mismo programa no suele haber problemas hasta que ambos intentan crear o usar el mismo archivo temporal DEL#.MB, provocando un error de acceso al fichero en uno de los dos usuarios :mad:. Hasta ahora lo había resulto creando un directorio con los programas para cada usuario que se conectaba, así que cada programa creara sus DEL#.MB en su propio directorio. No era mala idea cuando había 3 usuarios remotos :D, pero ya van por 18 y ahora se van a dar de alta otros 15 más... :eek: Creo que podría volver a tener un solo directorio de trabajo si consiguiera que los DEL#.MB se crearan en la carpeta temporal asignada a cada usuario en "document and Settings", ya que no debe ocurrir que se habran dos sesiones de T.S. con el mismo usuario (y si ocurre le cortamos las manos al que lo haya hecho:cool:). Debo unificar esto porque se me está yendo de las manos las actualizaciones y las asignaciones de directorios a cada usuario :(.

Uff... un poco más y me faltan caritas para terminar el texto ;).

Gracias.

afxe 11-01-2009 18:50:38

Perdon!!!
 
:oPerdonad por haberos hecho perder el tiempo.... debería haber investigado un poco más en la ayuda del BDE antes de molestaros, aquí está la solución:

Código Delphi [-]
var
  sID : String;
  SFolder :  pItemIDList;
  SpecialPath : Array[0..MAX_PATH] Of Char;

begin
 
  SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SFolder);
  SHGetPathFromIDList(SFolder, SpecialPath);
  Database1.Session.PrivateDir := SpecialPath;

(Hay que hacer una llamada a la libreria ShlObj)
Saludos


La franja horaria es GMT +2. Ahora son las 15:16:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi