Como puedo hacer un PACK en un dataset
lo abro con shared a .f. y me dice que lo
tengo que habrir en exclusivo, como se hace
eso un pequeño ejemplo, Gracias.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
hacer pack
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
hacer pack
PILO escribió:
> Como puedo hacer un PACK en un dataset
> lo abro con shared a .f. y me dice que lo
> tengo que habrir en exclusivo, como se hace
> eso un pequeño ejemplo, Gracias.
>
>
Saludos:
Lo primero decirte que si tienes abierto el DataSet tienes que cerrarlo
y volverlo abrir así.
** Abrir la base de LlegadasTest y hacer un Pack de todos los registros
WITH OBJECT ::oDbfLlegadasTest
** Si esta abierta la cierra
IF :lOpen
:Close()
ENDIF
** La abrimos en modo exclusivo
:lShared := .F.
:lOpen := .T.
IF :lOpen
IF :RecCount() > 0
:Parck()
ENDIF
ELSE
MsgInfo("No se puede abrir la base de datos")
ENDIF
:Close()
** La volvemos a abrir en modo compartido
:lShared := .T.
:lOpen := .T.
IF !:lOpen
MsgInfo("No se puede abrir la base de datos")
ENDIF
END
Todo esta secuencia es teniendo definido en el formulario la
TCdxDataSource y la TDbDataSet, sino debes de añadir lo que le falta a
cada una de las clases.
José Ramón Castro.
> Como puedo hacer un PACK en un dataset
> lo abro con shared a .f. y me dice que lo
> tengo que habrir en exclusivo, como se hace
> eso un pequeño ejemplo, Gracias.
>
>
Saludos:
Lo primero decirte que si tienes abierto el DataSet tienes que cerrarlo
y volverlo abrir así.
** Abrir la base de LlegadasTest y hacer un Pack de todos los registros
WITH OBJECT ::oDbfLlegadasTest
** Si esta abierta la cierra
IF :lOpen
:Close()
ENDIF
** La abrimos en modo exclusivo
:lShared := .F.
:lOpen := .T.
IF :lOpen
IF :RecCount() > 0
:Parck()
ENDIF
ELSE
MsgInfo("No se puede abrir la base de datos")
ENDIF
:Close()
** La volvemos a abrir en modo compartido
:lShared := .T.
:lOpen := .T.
IF !:lOpen
MsgInfo("No se puede abrir la base de datos")
ENDIF
END
Todo esta secuencia es teniendo definido en el formulario la
TCdxDataSource y la TDbDataSet, sino debes de añadir lo que le falta a
cada una de las clases.
José Ramón Castro.
hacer pack
Gracias JOSE RAMON
"José Ramón Castro Polinio" <jrcpoli-quitarpara_envio]"@terra.es> escribió
en el mensaje news:45bb53a7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> PILO escribió:
>> Como puedo hacer un PACK en un dataset
>> lo abro con shared a .f. y me dice que lo
>> tengo que habrir en exclusivo, como se hace
>> eso un pequeño ejemplo, Gracias.
>>
>>
> Saludos:
>
> Lo primero decirte que si tienes abierto el DataSet tienes que cerrarlo y
> volverlo abrir así.
>
> ** Abrir la base de LlegadasTest y hacer un Pack de todos los registros
> WITH OBJECT ::oDbfLlegadasTest
> ** Si esta abierta la cierra
> IF :lOpen
> :Close()
> ENDIF
> ** La abrimos en modo exclusivo :lShared := .F.
> :lOpen := .T.
> IF :lOpen
> IF :RecCount() > 0
> :Parck()
> ENDIF
> ELSE
> MsgInfo("No se puede abrir la base de datos")
> ENDIF
> :Close()
> ** La volvemos a abrir en modo compartido
> :lShared := .T.
> :lOpen := .T.
> IF !:lOpen
> MsgInfo("No se puede abrir la base de datos")
> ENDIF
> END
>
> Todo esta secuencia es teniendo definido en el formulario la
> TCdxDataSource y la TDbDataSet, sino debes de añadir lo que le falta a
> cada una de las clases.
>
> José Ramón Castro.
"José Ramón Castro Polinio" <jrcpoli-quitarpara_envio]"@terra.es> escribió
en el mensaje news:45bb53a7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> PILO escribió:
>> Como puedo hacer un PACK en un dataset
>> lo abro con shared a .f. y me dice que lo
>> tengo que habrir en exclusivo, como se hace
>> eso un pequeño ejemplo, Gracias.
>>
>>
> Saludos:
>
> Lo primero decirte que si tienes abierto el DataSet tienes que cerrarlo y
> volverlo abrir así.
>
> ** Abrir la base de LlegadasTest y hacer un Pack de todos los registros
> WITH OBJECT ::oDbfLlegadasTest
> ** Si esta abierta la cierra
> IF :lOpen
> :Close()
> ENDIF
> ** La abrimos en modo exclusivo :lShared := .F.
> :lOpen := .T.
> IF :lOpen
> IF :RecCount() > 0
> :Parck()
> ENDIF
> ELSE
> MsgInfo("No se puede abrir la base de datos")
> ENDIF
> :Close()
> ** La volvemos a abrir en modo compartido
> :lShared := .T.
> :lOpen := .T.
> IF !:lOpen
> MsgInfo("No se puede abrir la base de datos")
> ENDIF
> END
>
> Todo esta secuencia es teniendo definido en el formulario la
> TCdxDataSource y la TDbDataSet, sino debes de añadir lo que le falta a
> cada una de las clases.
>
> José Ramón Castro.
hacer pack
Haciendo lo que me has dicho me dar el siguiente error
TDBFDATASET:PARCK(1363)
Error BASE/1004 Message not found: TDbfDataSet:PARCK
Argumentos: ( [ 1] = Tipo: N Valor: 0)
***************************** Registro de errores
*****************************
Fecha: 28-01-2007
Hora: 19:07:10
Memoria libre: 492660
Area actual: 3
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 1.2.1 Version 1.2a
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TDbfDataSet:PARCK
Argumentos: [ 1] = Tipo: N Valor: 0
Fichero:
Código error SO: 0
Pila de llamadas:
TDBFDATASET:PARCK (1363)
TFNACIALTAS:FORMSHOW (188)
TFNACIALTAS:ONSHOW (0)
TSCROLLINGWINCONTROL:SHOW (585)
TFNACIALTAS:SHOW (434)
TFNACIALTAS:SHOWMODAL (0)
TFNACIMIENTOS:TOOLBAR1NUEVAENTRACLICK (79)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (372)
TREBAR:WMCOMMAND (256)
TFNACIMIENTOS:SHOWMODAL (0)
TMENUSRMPILO:TOOLBARNACIMIENTOS (239)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (372)
TREBAR:WMCOMMAND (256)
RUNFORM (0)
TAPPLICATION:RUN (208)
MAIN (28)
------------------ Información detallada de áreas de
trabajo ------------------
Area: 1
Alias: BAACPILO
Registro: 198
Filtro:
Relación:
Orden del índice: 2
Clave activa: 2
Area: 2
Alias: DAACTMP
Registro: 1
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 3
Alias: MADRESC
Registro: 10
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 4
Alias: DAACPILO
Registro: 266
Filtro: BAJA <> 'BAJA' .AND. TIPO_ANIMA <> 'MACHO'
Relación:
Orden del índice: 1
Clave activa: 1
TDBFDATASET:PARCK(1363)
Error BASE/1004 Message not found: TDbfDataSet:PARCK
Argumentos: ( [ 1] = Tipo: N Valor: 0)
***************************** Registro de errores
*****************************
Fecha: 28-01-2007
Hora: 19:07:10
Memoria libre: 492660
Area actual: 3
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 1.2.1 Version 1.2a
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TDbfDataSet:PARCK
Argumentos: [ 1] = Tipo: N Valor: 0
Fichero:
Código error SO: 0
Pila de llamadas:
TDBFDATASET:PARCK (1363)
TFNACIALTAS:FORMSHOW (188)
TFNACIALTAS:ONSHOW (0)
TSCROLLINGWINCONTROL:SHOW (585)
TFNACIALTAS:SHOW (434)
TFNACIALTAS:SHOWMODAL (0)
TFNACIMIENTOS:TOOLBAR1NUEVAENTRACLICK (79)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (372)
TREBAR:WMCOMMAND (256)
TFNACIMIENTOS:SHOWMODAL (0)
TMENUSRMPILO:TOOLBARNACIMIENTOS (239)
TTOOLBUTTON:ONCLICK (0)
(b)XTOOLBUTTON:XTOOLBUTTON (41)
TTOOLBUTTON:CLICK (0)
TTOOLBAR:COMMAND (372)
TREBAR:WMCOMMAND (256)
RUNFORM (0)
TAPPLICATION:RUN (208)
MAIN (28)
------------------ Información detallada de áreas de
trabajo ------------------
Area: 1
Alias: BAACPILO
Registro: 198
Filtro:
Relación:
Orden del índice: 2
Clave activa: 2
Area: 2
Alias: DAACTMP
Registro: 1
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 3
Alias: MADRESC
Registro: 10
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 4
Alias: DAACPILO
Registro: 266
Filtro: BAJA <> 'BAJA' .AND. TIPO_ANIMA <> 'MACHO'
Relación:
Orden del índice: 1
Clave activa: 1
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
hacer pack
PILO quitarle la "R" que puse de más deja solo Pack.
TDbfDataSet:Pack
Empaqueta la tabla eliminando físicamente todos los registros borrados.
Tipo
Sólo usable con TDataSet abierto
Parámetros
[<lTry>]
Si verdadero, el Pack se intentará realizar pero si no es posible no se
producirá ningún error. Por defecto .T.
[<lRefresh>]
Si verdadero provoca un refresco de todos sus DataControls. Por defecto
falso
Valor Retorno
<lSuccess>
Verdadero si exito
Para empaquetar una tabla es necesario abrir la tabla en modo
exclusivo. Si la tabla estaba abierta en modo exclusivo la operación se
realizará siempre de forma exitosa, sin embargo, cuando la tabla esta
abierta en modo compartido, este método intentará reabrirla en modo
exclusivo para proceder a su empaquetado. Si lTry es .T. y la apertura
en exclusivo no ha sido posible no se producirá ningún error.
Este método guarda el estado completo de la tabla antes del
empaquetamiento para poder dejarla en el mismo estado en que se
encontraba después de su ejecución.
Este método es el equivalente y se basa en la función __dbPack()
(comando PACK) típica de Clipper/[x]Harbour.
José Ramón Castro.
PILO escribió:
> Haciendo lo que me has dicho me dar el siguiente error
> TDBFDATASET:PARCK(1363)
> Error BASE/1004 Message not found: TDbfDataSet:PARCK
> Argumentos: ( [ 1] = Tipo: N Valor: 0)
> ***************************** Registro de errores
> *****************************
>
> Fecha: 28-01-2007
> Hora: 19:07:10
> Memoria libre: 492660
> Area actual: 3
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.2.1 Version 1.2a
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Message not found
> Operación: TDbfDataSet:PARCK
> Argumentos: [ 1] = Tipo: N Valor: 0
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TDBFDATASET:PARCK (1363)
> TFNACIALTAS:FORMSHOW (188)
> TFNACIALTAS:ONSHOW (0)
> TSCROLLINGWINCONTROL:SHOW (585)
> TFNACIALTAS:SHOW (434)
> TFNACIALTAS:SHOWMODAL (0)
> TFNACIMIENTOS:TOOLBAR1NUEVAENTRACLICK (79)
> TTOOLBUTTON:ONCLICK (0)
> (b)XTOOLBUTTON:XTOOLBUTTON (41)
> TTOOLBUTTON:CLICK (0)
> TTOOLBAR:COMMAND (372)
> TREBAR:WMCOMMAND (256)
> TFNACIMIENTOS:SHOWMODAL (0)
> TMENUSRMPILO:TOOLBARNACIMIENTOS (239)
> TTOOLBUTTON:ONCLICK (0)
> (b)XTOOLBUTTON:XTOOLBUTTON (41)
> TTOOLBUTTON:CLICK (0)
> TTOOLBAR:COMMAND (372)
> TREBAR:WMCOMMAND (256)
> RUNFORM (0)
> TAPPLICATION:RUN (208)
> MAIN (28)
>
> ------------------ Información detallada de áreas de
> trabajo ------------------
>
> Area: 1
> Alias: BAACPILO
> Registro: 198
> Filtro:
> Relación:
> Orden del índice: 2
> Clave activa: 2
>
> Area: 2
> Alias: DAACTMP
> Registro: 1
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 3
> Alias: MADRESC
> Registro: 10
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 4
> Alias: DAACPILO
> Registro: 266
> Filtro: BAJA <> 'BAJA' .AND. TIPO_ANIMA <> 'MACHO'
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
>
TDbfDataSet:Pack
Empaqueta la tabla eliminando físicamente todos los registros borrados.
Tipo
Sólo usable con TDataSet abierto
Parámetros
[<lTry>]
Si verdadero, el Pack se intentará realizar pero si no es posible no se
producirá ningún error. Por defecto .T.
[<lRefresh>]
Si verdadero provoca un refresco de todos sus DataControls. Por defecto
falso
Valor Retorno
<lSuccess>
Verdadero si exito
Para empaquetar una tabla es necesario abrir la tabla en modo
exclusivo. Si la tabla estaba abierta en modo exclusivo la operación se
realizará siempre de forma exitosa, sin embargo, cuando la tabla esta
abierta en modo compartido, este método intentará reabrirla en modo
exclusivo para proceder a su empaquetado. Si lTry es .T. y la apertura
en exclusivo no ha sido posible no se producirá ningún error.
Este método guarda el estado completo de la tabla antes del
empaquetamiento para poder dejarla en el mismo estado en que se
encontraba después de su ejecución.
Este método es el equivalente y se basa en la función __dbPack()
(comando PACK) típica de Clipper/[x]Harbour.
José Ramón Castro.
PILO escribió:
> Haciendo lo que me has dicho me dar el siguiente error
> TDBFDATASET:PARCK(1363)
> Error BASE/1004 Message not found: TDbfDataSet:PARCK
> Argumentos: ( [ 1] = Tipo: N Valor: 0)
> ***************************** Registro de errores
> *****************************
>
> Fecha: 28-01-2007
> Hora: 19:07:10
> Memoria libre: 492660
> Area actual: 3
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.2.1 Version 1.2a
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Message not found
> Operación: TDbfDataSet:PARCK
> Argumentos: [ 1] = Tipo: N Valor: 0
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TDBFDATASET:PARCK (1363)
> TFNACIALTAS:FORMSHOW (188)
> TFNACIALTAS:ONSHOW (0)
> TSCROLLINGWINCONTROL:SHOW (585)
> TFNACIALTAS:SHOW (434)
> TFNACIALTAS:SHOWMODAL (0)
> TFNACIMIENTOS:TOOLBAR1NUEVAENTRACLICK (79)
> TTOOLBUTTON:ONCLICK (0)
> (b)XTOOLBUTTON:XTOOLBUTTON (41)
> TTOOLBUTTON:CLICK (0)
> TTOOLBAR:COMMAND (372)
> TREBAR:WMCOMMAND (256)
> TFNACIMIENTOS:SHOWMODAL (0)
> TMENUSRMPILO:TOOLBARNACIMIENTOS (239)
> TTOOLBUTTON:ONCLICK (0)
> (b)XTOOLBUTTON:XTOOLBUTTON (41)
> TTOOLBUTTON:CLICK (0)
> TTOOLBAR:COMMAND (372)
> TREBAR:WMCOMMAND (256)
> RUNFORM (0)
> TAPPLICATION:RUN (208)
> MAIN (28)
>
> ------------------ Información detallada de áreas de
> trabajo ------------------
>
> Area: 1
> Alias: BAACPILO
> Registro: 198
> Filtro:
> Relación:
> Orden del índice: 2
> Clave activa: 2
>
> Area: 2
> Alias: DAACTMP
> Registro: 1
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 3
> Alias: MADRESC
> Registro: 10
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 4
> Alias: DAACPILO
> Registro: 266
> Filtro: BAJA <> 'BAJA' .AND. TIPO_ANIMA <> 'MACHO'
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
>