Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2006
quali quali is offline
Miembro
 
Registrado: jul 2003
Ubicación: Posadas, Misiones, Argentina
Posts: 23
Poder: 0
quali Va por buen camino
Permisos para acceder a BD en Paradox

Hola todos.
Estoy desarrollando una aplicación que debe leer datos de una tabla Paradox que se encuentra en una maquina corriendo Windows 98. Esta maquina comparte su disco con protección con contraseña. Cuando ejecuto la aplicación, al intentar acceder a las tablas remotas, obtengo una excepción que me informa que tengo 'permiso denegado'.

Desde el explorador de la maquina en donde ejecuto la aplicación entro al entorno de red, selecciono la maquina que tiene la base de datos, accedo al recurso compartido e ingreso la clave de acceso. Luego vuelvo a ejecutar la aplicación y funciona correctamente. Evidentemente el problema es que necesito pasarle la password al recurso compartido para poder accederlo.
Alguien sabe como puedo hacer eso en tiempo de ejecución?
O sea, que la aplicación se loguee en un recurso compartido protegido por contraseña en W98.
Estoy desarrollando con Delphi y la aplicacion debe correr en windows XP o Windows server 2003
Desde ya agradezco cualquier ayuda.
__________________
Alejandro
Responder Con Cita
  #2  
Antiguo 21-09-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tengo esta información, creo recordar haber hecho alguna prueba y que funcionaba correctamente, ya nos dirás como te va.

Código Delphi [-]
utilice una funcion de la api de Windows que oi mencionar aqui en el foro, la cosa esta en iniciar
una conexion con la carpeta compartida psandole un nombre de usuario y una contraseña, en
Win9x no importa el nombre de usuario solo la contraseña de la carpeta, mientras que en Windows
Nt y 2000 tienes que pasarle un usuario valido y el password del usuario no de la carpeta. el codigo
es mas o menos asi
 
function TDModulo.ConectaRed: boolean;
var
   RecursoRed: _NETRESOURCE;
   Resultado: Word;
begin
   Resultado := NO_ERROR;
   Conectado := false;
 
   with RecursoRed do
   begin
      dwType := RESOURCETYPE_DISK;
      LpLocalName := nil;
      LpRemoteName := Pchar(DirServer);  // dirserver podria ser  "\\maquina\carpeta"
      LpProvider := nil;
   end;
 
   // --------------- nos conectamos al directorio ------------------
   Resultado := WNetAddConnection2(
      RecursoRed, // points to structure that specifies connection details
      PChar(Contrasenia), // points to password string
      PChar(Usuario), // points to user name string
      CONNECT_UPDATE_PROFILE // set of bit flags that specify connection options
      );
 
   // --------------------------------------- ya que te conectaste al directorio inicias la sesion de paradox
---------------------------------
   try
      if not Resultado in [NO_ERROR, ERROR_ALREADY_ASSIGNED] then
         raise EInvalidOperation.Create('');
 
      with Sesion do begin
         NetFileDir := DirServer + '\NET';
         PrivateDir := ObtenWindowsTemp;
      end;
 
      with DataBase do begin
         Params.Clear;
         Params.Add('PATH=' + DirServer);
         Params.Add('DEFAULT DRIVER=PARADOX');
         Params.Add('ENABLE BCD=FALSE');
         Connected := true;
      end;
      Conectado := true;
   except
      ShowMessage('No se ha podido establecer una sesion en red para el sistema' + #13 +
         'posiblemente el servidor no este funcionando en este momento o' + #13 +
         'existe un error en la configuracion, por favor verifique y vuelva a intentar.');
      Conectado := False;
   end;
   Result := Conectado;
end;
 
esto es obviamente al momento de crear tu Datamodulo (supongo que utilizaras uno) o en el
momento de abrir tu base de datos.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 04-10-2006
quali quali is offline
Miembro
 
Registrado: jul 2003
Ubicación: Posadas, Misiones, Argentina
Posts: 23
Poder: 0
quali Va por buen camino
Marcos, crei haber respondido al otro dia que pusiste tu mensaje, pero por lo visto no lo hice.
Lo que me pasaste anduvo perfecto.

Muchas gracias
__________________
Alejandro
Responder Con Cita
  #4  
Antiguo 04-10-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hubo un problema en el Foro y se perdieron algunos mensajes, pero recuerdo haber leido tu respuesta favorable.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Permisos de Administrador Para Dehabilitar Control + Alt + Suprimir johnyague API de Windows 9 20-09-2006 23:39:51
Problemas para acceder a frames Pedro-Juan OOP 1 23-08-2006 00:42:29
Permisos para escribir en Pen drive Casimiro Notevi Linux 2 04-03-2005 11:45:33
permisos para ejecutar un procedure Crandel Firebird e Interbase 2 17-07-2003 22:31:47
Acceder a una base en paradox desde internet MeTaL Conexión con bases de datos 0 02-07-2003 19:05:53


La franja horaria es GMT +2. Ahora son las 01:02:15.


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
Copyright 1996-2007 Club Delphi