Leer una base sin permiso

Post Reply
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Leer una base sin permiso

Post by acuellar »

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: Select all

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  // [b]SI NO COLOCO ESTA LINEA NO FUNCIONA[/b]

   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:cargo:=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.
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Leer una base sin permiso

Post by jrestojeda »

Hola amigo...
Prueba declarar la variable base como privada.

Code: Select all

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
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Leer una base sin permiso

Post by acuellar »

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.
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Leer una base sin permiso

Post by ADBLANCO »

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
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Leer una base sin permiso

Post by acuellar »

Gracias Distinguido Angel.

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

Saludos

Adhemar
Saludos,

Adhemar C.
Post Reply