Como se Cierra ldb con adordd?

Como se Cierra ldb con adordd?

Postby JoseLuis » Tue Sep 30, 2008 12:11 pm

Hola amigos

Cuando abrimos una base de datos mdb nos genera un fichero .ldb asociado a ella, y cuando se cierra la base de datos, éste fichero ldb desaparece.
Bien, pues si la base de datos la abrimos con adordd, no hay manera, con el problema que ello conlleva, ya que éste fichero no se puede borrar manualmente.
Ejemplo:
Code: Select all  Expand view
   USE &base1 VIA "ADORDD" alias paquetes NEW TABLE "UltimoRegistro"
if paquetes->(Recno())>=1
  DbSetfilter({|| "Ufecha >= '" + comienzo + "'"},"Ufecha >= '" + comienzo + "'")
    dbusearea(.t.,,Publicas:cUnidad+Publicas:cSubd+"\Rdia",,.t.)
         Rdia->(OrdSetFocus("Expedicion"))
    paquetes->(Dbgotop())
    do while !paquetes->(Eof())
     Rdia->(Dbappend())
     Rdia->expedicion:=paquetes->Expedicion
     Rdia->Bulto:=paquetes->Bulto
     Rdia->UFecha:=paquetes->Ufecha
     Rdia->Upeso:=paquetes->UPeso/10
     Rdia->Uvolumen:=paquetes->Uvolumen/1000000
     Rdia->ULargo:=paquetes->ULargo/100
     Rdia->UAlto:=paquetes->UAlto/100
     Rdia->UAncho:=paquetes->UAncho/100
     paquetes->(Dbskip())
    enddo
    paquetes->(Dbclosearea())


Yo suponía que al cerrar el area ( paquetes->(Dbclosearea())) como hacemos normalmente, desaparecería espe fichero, pero no.

Este problema creo que ya se expuso el año pasado en el foro inglés, ha habido novedades?

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Tue Sep 30, 2008 8:08 pm

Jose Luis,

Prueba esto despues de llamar a DbCloseArea():

HB_AdoRddGetConnection():Close()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Wed Oct 01, 2008 7:10 am

Antonio

Me da error de acceso a array:
    Application
    ===========
    Path and name: C:\fuentes\xharbour\GESPAQ08\gespaqn.Exe (32 bits)
    Size: 1,018,880 bytes
    Time from start: 0 hours 0 mins 56 secs
    Error occurred at: 01-10-2008, 09:05:08
    Error description: Error BASE/1068 Argument error: array access
    Args:
    [ 1] = U
    [ 2] = N 4

    Stack Calls
    ===========
    Called from: adordd.prg => HB_ADORDDGETCONNECTION(982)
    Called from: => CALCULA(364)
    Called from: trafico.prg => (b)EVAL(142)


Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Wed Oct 01, 2008 7:31 am

Jose Luis,

Haz la llamada a: HB_AdoRddGetConnection():Close()

antes de hacer el DbCloseArea()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Wed Oct 01, 2008 8:25 am

Antonio

Sigue dando el mismo error

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Wed Oct 01, 2008 8:27 am

Jose Luis,

Parece algo propio de ADO con MDB. Si la conexión está cerrada, el fichero no debería quedarse abierto...
Last edited by Antonio Linares on Wed Oct 01, 2008 8:40 am, edited 1 time in total.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Wed Oct 01, 2008 8:40 am

Last edited by Antonio Linares on Wed Oct 01, 2008 8:49 am, edited 1 time in total.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Wed Oct 01, 2008 8:48 am

"' el DataReader debe ser cerrado explícitamente al terminar de leer
col.Close()
Se cierra explícitamente la conexión OleDb (si no se hace así, la información de bloqueo de registros de la base de datos de Access permanece en forma de archivo con extensión *.ldb junto al archivo pruebasDB.mdb y puede provocar errores en accesos futuros a la base de datos):
' Cerrar la conexión y los objetos de comando
com.Dispose()
con.Close()
Console.WriteLine("Conexión OLEDB cerrada.")"

"From the studies I have done using VB6, you will need to close out the
database instead of the recordset."
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Wed Oct 01, 2008 8:51 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Wed Oct 01, 2008 10:29 am

Antonio

Muchas gracias, vamos a ponernos a ello

Saludos


Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 81 guests