Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como "actualizar" una unidad de red (https://www.clubdelphi.com/foros/showthread.php?t=4589)

ing_alsaac 21-10-2003 06:33:28

como "actualizar" una unidad de red
 
Hola a Todos:
tengo una aplicación en red con la base de datos en el servidor y con unidades de red en los clientes para una conexion odbc, hasta ahi no hay problema pero a veces el servidor no se "enciende" primero que los clientes y cuando los clientes (que tienen Win98) buscan la unidad de red al iniciarse obviamente les manda un error al conectar la unidad de red, yo tengo en la aplicación que cuando se inicie, antes de conectar a la base de datos busque el archivo de base de datos en la unidad de red y si no lo encuentra quiere decir que no esta "activo" el servidor, pero cuando se enciende el servidor no se actualiza el estado de la unidad de red a menos que entres al explorador y des 2click a la unidad para activarla, no puedo hacer lo mismo yo desde mi aplicación? o sea que si la opcion de mi aplicacion no encuentra el archivo "K:\base.mdb" trate de "refrescar" el estado de la unidad para ver si ya esta activa e iniciar la aplicación y si no pues en definitiva enviar un "El servidor o la unidad no estan conectados".
Como siempre y por siempre de antemano Gracias.

marcoszorrilla 21-10-2003 08:41:04

Prueba con esta función del API.

The WNetAddConnection2 function makes a connection to a network resource. The function can redirect a local device to the network resource.

The WNetAddConnection2 function supersedes the WNetAddConnection function. If you pass a handle to a window that the provider of network resources can use as an owner window for dialog boxes, use the WNetAddConnection3 function.

DWORD WNetAddConnection2(

LPNETRESOURCE lpNetResource, // points to structure that specifies connection details
LPCTSTR lpPassword, // points to password string
LPCTSTR lpUsername, // points to user name string
DWORD dwFlags // set of bit flags that specify connection options
);

Un Saludo.

ing_alsaac 22-10-2003 06:14:29

Ante todo gracias por haber respondido a mi pregunta pero la verdad no entendi como ingresar esa funcion a mi aplicacion, es una funcion? una variable? por lo que vi tengo que definir las demas funciones no (WNetAddConnection, WNetAddConnection3)? o llamarlas de alguna libreria? como lo pondrias en un ejemplo simple? si la unidad fuera "K:\" y no hay password ni username? y la maquina fuera \\servidor\basededatos\ = "K:\"
de todas formas muchas gracias.

roman 22-10-2003 07:54:23

Cita:

Posteado originalmente por ing_alsaac
es una funcion? una variable?
Pues ya marcoszorrilla lo indicó: es una función.

La función se encuentra definida en la unidad Windows, que normalmente se incluye por defecto en cualquier formulario.

Aquí te va un ejemplo específico para lo que buscas:

Código:

var
  NetResource: TNetResource;
  NetResult: Cardinal;

begin
  NetResource.dwType := RESOURCETYPE_ANY;
  NetResource.lpLocalName := 'K:';
  NetResource.lpRemoteName := '\\servidor\basededatos';
  NetResource.lpProvider := nil;
  NetResult := WNetAddConnection2(NetResource, nil, nil, 0);
end;

Algunas valores de NetResult que te pueden interesar:
  • NO_ERROR - no hubo error, todo salió bien
  • ERROR_ALREADY_ASSIGNED - ya está asignada la unidad

Puedes encontrar más infromación en MSDN

// Saludos


La franja horaria es GMT +2. Ahora son las 00:34:18.

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