FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Leer una base sin permiso
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Leer una base sin permiso
Posted: Thu May 21, 2009 03:50 PM
Hola a todos

Tengo un programa que se ejecuta al iniciar sesion. El programa resisde el la carpeta NETLOGON, en el perfil del usuario se coloca el nombre del programa y lo ejecuta.

Existe una carpeta compartida donde se encuentra la base a leer y solo tiene permiso un usuario. La idea es darle permiso mediante el NET USE, la lee y luego desactiva.

Funciona, pero solo si hago un print Ej: ?BASE, no se con que reemplazarlo para que no se detenga

Aqui va el fuente
Code (fw): Select all Collapse
REQUEST DBFCDX

Function Main()
    
   RddSetDefault( "DBFCDX" )
   SET RESOURCES TO "CUMPLE.DLL"
 
   Store 0 To BdrCtos,vBdr,vBdr1
 
   Lin=50;  Col=150
   
   WinExec("Net use \\FOSERVER\RRHH clave /user:acuellar",0)
   
   ViaRRHH:="\\FOSERVER\RRHH\DATA\"
   
   vFecAyer:=Left(dtoc(date()-1),5)
   
   Base:=ViaRRHH+"DATPER" 
   ?Base  // <strong>SI NO COLOCO ESTA LINEA NO FUNCIONA</strong>

   Use (Base) Inde (Base) Alias EMPL NEW SHARED
   SET ORDER TO TAG DATPER2
   Set Filt to Left(dtoC(FechaNac),5)=Left(dtoC(date()),5)
   dbGoTop()
   
   Define window oWnd from 0,1 to 0,1 STYLE WS_POPUP
   Activate Window oWnd On Init Nota()
   
   WinExec("Net use \\FOSERVER\RRHH /delete",0)
  
  EMPL->( dBCloseArea() )
  
  
Retu nil
*
Func Nota()
   nVen:=1
   Do while !Eof()
    mcual=Str(nVen,1)
    Public ownd&mcual
    Define Window ownd&mcual from Lin/16,Col/8 to Lin/16+8,Col/8+30 Color CLR_GREEN,CLR_YELLOW STYLE nOr(WS_POPUP,WS_BORDER) of oWnd
    ownd&mcual:=mcual
    Activate Window oWnd&mcual on init Botones(ownd&mcual,1)
    DbSkip()
    nVen++
    Lin=Lin+70
    Col=Col+70
    BdrCtos=BdrCtos+1
  Endd
   
Retu nil
*
Func Botones(Vent1,vNr)
   @ 0,0 BITMAP resource "Esquina" NOBORDER OF Vent1 PIXEL SIZE 80,21 
   @ 1.7,Vent1:nWidth()-20 BITMAP resource "Quitar" NOBORDER OF Vent1 PIXEL SIZE 15,14 ON LEFT CLICK Cierra(Vent1)
   mTexto(Vent1,vNr)
Retu nil
*
Func Cierra(Vent2)
    mcual:=Vent2:cargo
     If BdrCtos=1
       oWnd:End()
       Set Resources to
       Close data
    Else
       ownd&mcual:End()
       BdrCtos=BdrCtos-1
    Endi
Retu nil

Func mTexto(Vent3,vNr)
    cNOM:=OemToAnsi(Alltrim(NOMBRE))+" "+OemToAnsi(Alltrim(APELLIDOS))
     @ 1.7,.4 SAY oSay PROMPT "Hoy es cumpleaños de:" OF Vent3 SIZE 173,14 COLOR CLR_HRED
     @ 3.2,.5 SAY  oSay PROMPT cNOM OF Vent3 SIZE 173,13 COLOR CLR_HBLUE
Retu nil

El programa muestra el cumpleañero del día en un Postit.
Quizas alquien tenga otra idea.

Gracias de antemano por sus aportes

Saludos

Adhemar
Saludos,



Adhemar C.
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Leer una base sin permiso
Posted: Thu May 21, 2009 04:07 PM
Hola amigo...
Prueba declarar la variable base como privada.

Code (fw): Select all Collapse
Private Base

...
...
...

Base:=ViaRRHH+"DATPER" 

Use (&Base) Inde (&Base) Alias EMPL NEW SHARED
SET ORDER TO TAG DATPER2
Set Filt to Left(dtoC(FechaNac),5)=Left(dtoC(date()),5)
dbGoTop()


Espero te sirva.
Saludos,
Ojeda Esteban Eduardo.

Buenos Aires - Argentina.

FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport

Skype: jreduojeda
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Leer una base sin permiso
Posted: Thu May 21, 2009 04:21 PM

Gracias Distinguido, lo probe y no funciona.

Funciona sólo si se detiene, o dandole permiso al usuario para acceder a la carpeta, que es lo que no quiero porque cada vez que creamos un nuevo usuario hay que darle permiso, además que en la carpeta hay otras bases a las cuales no deberian acceder.

Saludos

Adhemar

Saludos,



Adhemar C.
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Re: Leer una base sin permiso
Posted: Tue May 26, 2009 06:22 PM

No creo que tenga nada que ver, pero el orden de las instrucciones no debiera ser:

EMPL->( dBCloseArea() )
WinExec("Net use \FOSERVER\RRHH /delete",0)

en lugar de:

WinExec("Net use \FOSERVER\RRHH /delete",0)

EMPL->( dBCloseArea() )

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Leer una base sin permiso
Posted: Wed May 27, 2009 12:32 PM

Gracias Distinguido Angel.

Tiene razón, primero debo cerrar las bases, luego quitar la carpeta compartida.

Saludos

Adhemar

Saludos,



Adhemar C.

Continue the discussion