FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
El homónimo del FlushBuffers para Query
Hola a todos!!!
Una pregunta rápida: si para guardar los registros de un TTable paradox del bufer al disco duro utilizo: Código:
Table1.FlushBuffers He hecho las pruebas siguientes y nada de nada: Query1.ApplyUpdates ó Query1.CommitUpdates ó Query1.FlushBuffers. ¿Me podéis ayudar por favor? Gracias anticipadas!!! |
#2
|
|||
|
|||
Pos que yo sepa es
Cita:
|
#3
|
|||
|
|||
Y la ubicacion del Query1.Flushbuffers?
Hola Cadetill, gracias por atenderme!!!
Yo he probado de poner Query1.FlushBuffers despues del Query1.ExecSql, y no me guarda los registros. Se tiene que poner en otra ubicacion? En un evento tal vez? Gracias. |
#4
|
|||
|
|||
Que significa que no te guarda los registros?
|
#5
|
|||
|
|||
El problema con FlushBuffers
Me explico. Primero ejecuto mi programa desde Delphi, ejecuto la query (update tabla set campo where etc etc.) con query.execsql y query.flushbuffers, y luego para ver si me lo ha guardado en el disco duro voy a Delphi y pulso CTRL+F2 (para parar la compilacion) y salgo de Delphi. Cuando lo vuelvo a arrancar y ejecutar el programa los registros aplicados por la query no han cambiado (cosa curiosa, para el table si que lo ha hecho si hago Table.Flushbuffers)
Me podeis explicar que pasa? |
#6
|
||||
|
||||
En el caso de una sentencia update en un TQuery, no hay necesidad de llamar a FlushBuffers... pues en realidad no hay buffers (en el TQuery) que vaciar... te das cuenta??
Como estas trabajando con BDE/Paradox, probablemente haya que vaciar los buffers del BDE.. no lo se, pero no los del TQuery. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
Y alguna pista para vaciar los bufers del BDE? Codigo ejemplo, sería de agradecer
Gracias por responderme!!! |
#8
|
||||
|
||||
Me ha costado encontrarlo... pero creo que esto funcionará:
No lo garantizo... vos probalo y luego nos contas como te ha ido. Claro... tenes que estar seguro que el update (si tiene algun where) incluya por lo menos un registro. Hasta luego. |
#9
|
|||
|
|||
Hola buenos días!!!
Gracias por vuestra ayuda, pero no hay manera de que funcione. Cuando estoy en modo de ejecución de mi programa y pasa por la linea DbiDatabaseFlush(qryAct.Database.Handle); me da un mensaje de error parecido a "EAccessViolation ... Access violation at address...". ¿Sabéis a qué puede ser debido? Cualquier ayuda será bien recibida, y más aún, que estamos a punto de conseguirlo!!! |
#10
|
||||
|
||||
Como he dicho en mi anterior mensaje... no estaba garantizado el asunto. Seguramente la instrucción flushdatabase no puede llamarse en esta situación. De todas formas me he quedado pensando que no debiera ser necesario llamarla... quizas tu problema esté por otro lado, alguna transaccion si commit, o algo similar..
En fin, creo que es mejor no meterse mas a este nivel con el BDE, no sea que termine de estropearse... Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|