Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2006
Vinicio Vinicio is offline
Miembro
 
Registrado: jul 2006
Posts: 16
Poder: 0
Vinicio Va por buen camino
Hola...

Hola amigos..

Primero k nada una disculpa por la expreson "Creo k no es eso", siendo sincero kreo k no fue la correcta, y una vez mas siendo sincero no eh probado el FlushBuffer, lo k pasa es k el proyecto esta en otra parte de donde estoy ahora...
Tambien encontre esto k kreo k se relaciona con mi problema en otro post de este mismo foro...
Julià T. vbmenu_register("postmenu_11653", true);
Conde nado
Fecha de Ingreso: May 2003
Localización: en el teclado
Mensajes: 311


El problema de que se rompan los archivos puede ser que en el momento que estes copiando un archivo *.db o qualquier otro que sea tabla o base de datos, esté abierto por alguna aplicación y no se haya volcado la información que contiene en la memória de la aplicación a la tabla/base de datos.

Los ficheros los debes copiar cuando las tablas esten completamente inactivas, o bien con un Bachmove cuando estén en qualquier estado.

Quisiera saber k opinan, y si saben algo de el llamado "Bachmode", por k siendo sincero la tabla de paradox en su ubicacion original si esta llena, lo se por k cada vez k inserto la reviso y si estan los datos , es mas antes de copiar el archivo en al otra carpeta reviso y si esta llena...no se si sera cuestion de cerrar el archivo antes de copiarlo o algo asi....
Ustedes k opinan???

y una vez mas una disculpa, no fue mi intencion expresarme asi, de hecho hace ya muhco tiempo k consulto este foro y siempre me ayuda...
estoy muy agradecido de k existan este tipo de foros pues a nosotros los programadores nos es de mucha ayuda

De antemano gracias...
Responder Con Cita
  #2  
Antiguo 16-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Siguiendo la línea de roman, usa FlushBuffers en el AfterPost, despues cierra la tabla y la copias.

Si aún sigue dando fallos, puedes ir por la caché de escritura de windows en segundo plano, por defecto está activa y no fuerza la escritura a disco.

Acabo de subir el truco 352 que permite ver el estado de la caché en windows y desactivarla.

En cuanto al TBatchMove, es un método del TTable, simplemente tienes que darle un Dataset con los datos a insertar, y el método de inserción, (la tabla de destino debe existir, es decir, usa el Database desktop para copiarla, y despues borra sus registros):

En el siguiente ejemplo, creo una Qry seleccionando los datos, y despues se añaden a la tabla tblFacturasH (histórico de facturas).

Ten cuidado con el orden al insertar registros si usas relaciones Master-Detail, como siempre, primero se inserta en el Maestro y despues en el Detalle:
Código Delphi [-]

    qry := Tquery.Create(NIL);
    try
      qry.DatabaseName := DTM.tblFacturas.DatabaseName;
      qry.SessionName  := DTM.tblFacturas.SessionName;
      qry.SQL.Clear;
      qry.SQL.Add('select * from  Factura where nfactura = ' + QuotedStr('22235') + ';');
      qry.Prepare;
      qry.Open;
      if not qry.IsEmpty then
        dtmH.tblFacturasH.BatchMove(qry, batAppendUpdate); 
// pasamos la factura desde el qry al tblFacturasH
      qry.Close;
    finally
      FreeAndNil(qry);
    end; // finally

Estudia los parámetros que lleva el BatchMove para usar el que necesites.

Saludos y suerte.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 16-07-2006 a las 10:28:00.
Responder Con Cita
  #3  
Antiguo 17-07-2006
Vinicio Vinicio is offline
Miembro
 
Registrado: jul 2006
Posts: 16
Poder: 0
Vinicio Va por buen camino
Hola...

Hola amigos...

Ya intente con el Flushbuffer en el metodo afterpost del query y de ahi cierro la tabla e inbtento copiar con copyfile, pero aun sigue copiandome el archivo vacio, y los datos solo se kedan en su ubicacion original...

Tambien intente con el batchmove, pero con este necesito tener una tabla creada en el datamodule y estipulado el alias etc etc.. lo k yo keria o necesitaba era solo copiar un archivo .db de una ubicacion a otra en tiempo de ejecucion...

E intentado copiar el archivo de otra forma y me dice k no se peude copiar por k este esta en uso por otra aplicacion...

Habia leido tambien en este foro k una posible solucion seria hacer un lockfile al archivo .db, copiarlo y despues darle un unlock, pero no se usar estas funciones...

Alguien tiene otra idea...
Yo por lo pronto seguire intentano...
Responder Con Cita
  #4  
Antiguo 18-07-2006
Vinicio Vinicio is offline
Miembro
 
Registrado: jul 2006
Posts: 16
Poder: 0
Vinicio Va por buen camino
Por fin resulto!!!

Je je je... Por fin me salio esto amigos, intente de todo, y al final una combinacion de todas sus sugerencias fue lo k me ayudo, estoy muy agradecido y muchas gracias a todos los k me tubieron paciencia y me mandaron sus sugerencias, a final termine utilizando el BatchMove el flush buffer

Muchas gracias!!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas con Archivo PARADOX.DIR Coco_jac Varios 1 14-07-2006 21:48:26
Archivo (VAL) Paradox david duarte Conexión con bases de datos 7 04-10-2005 13:35:07
Saber windows esta copiando o elimniando archivo mauriciofox API de Windows 0 25-02-2005 05:21:14
Problema copiando Aplicacion en Delphi 4 throtmax Conexión con bases de datos 1 09-02-2004 14:47:24
Copiando archivos cone220 API de Windows 3 23-06-2003 14:43:28


La franja horaria es GMT +2. Ahora son las 20:34:13.


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