FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
pack de fichero dbf
Hola listeros:
Tengo el siguiente problema que trabajando un fichero dbf cuando borro los registros en realidad lo que hago es marcarlos pero cuando se abren con foxpro hay estan. Busque en Trucomania el truco 96 pero cuando lo ejecuto me da el siguiente error 'capability not supported' alguien me puede echar una mano Saludos Luis Garcia _____________________________ La mejor manera de decir es hacer |
#2
|
||||
|
||||
Porque no pones el código que estás utilizando, ya que el truco que mencionas habla de tablas Dbf y tablas Paradox, puede ser que con las de Fox no funcione.
En cualquier caso recuerda que requiere el uso exclusivo de la tabla que se está compactando. Si realmente no funciona con Fox, una solución sería crear una tabla exactamente igual vacía, transferirle los registros, eliminar la original, renombrar la que ahora solo contiene los registros no marcados para borrar. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
pack de fichero dbf
Marcos gracias por la respuesta. En el programa que hice tuve que usar la solucion que me dijiste en la parte final de tu respuestas pero en este caso solo se trata de cuando uno va a eliminar un registro tratando de mantener el fichero original, de todas maneras voy a intentar lo que dices porque la vez anterior no tuve otra alternativa y estube fajado varios dias. Te muestro parte del codigo a ver si aprecias algo nuevo
Código:
procedure PackDBF(Tabla: TTable); begin Check(DbiPackTable(Tabla.DBHandle, Tabla.Handle, nil, szDBASE, True)) end; procedure TFormCorrecionCadeca.FormActivate(Sender: TObject); begin DataModule1.Cadeca.TableName:= nomcadeca; DataModule1.Cadeca.Exclusive:= True; DataModule1.Cadeca.Open; ButtonGuardar.Enabled:= False; end; procedure TFormCorrecionCadeca.DSCadecaDataChange(Sender: TObject; Field: TField); begin ButtonGuardar.Enabled:= DataModule1.Cadeca.State in dsEditModes; end; procedure TFormCorrecionCadeca.ButtonGuardarClick(Sender: TObject); begin DataModule1.Cadeca.Post; ButtonGuardar.Enabled:= False; end; procedure TFormCorrecionCadeca.ButtonSalirClick(Sender: TObject); begin PackDBF(DataModule1.Cadeca); DataModule1.Cadeca.Close; Close; end; |
#4
|
|||
|
|||
solucion al pack de fichero dbf
Utilizando el truco 96 de trucomania se logro resolver el problema pero el detalles estaba en que al cerrar el formulario primero hay que cerrar la tabla y luego hacer el Pack y ademas hay que pasar en el nombre del fichero la extension del mismo (.dbf)
Asi fue como lo pudimos lograr, quizas a alguien le pueda servir Código:
procedure PackDBF(Const ADatabase, ATable : String); begin with TTable.Create(nil) do try DatabaseName := ADataBase; TableName := ATable; TableType := ttFoxPro; Exclusive := True; Open; Check(DbiPackTable(Database.Handle,Handle,'','',True)); finally Free; end; end; procedure TFormCorrecionCadeca.FormActivate(Sender: TObject); begin DataModule1.Cadeca.TableName:= nomcadeca; DataModule1.Cadeca.Open; ButtonGuardar.Enabled:= False; end; procedure TFormCorrecionCadeca.DSCadecaDataChange(Sender: TObject; Field: TField); begin ButtonGuardar.Enabled:= DataModule1.Cadeca.State in dsEditModes; end; procedure TFormCorrecionCadeca.ButtonGuardarClick(Sender: TObject); begin DataModule1.Cadeca.Post; ButtonGuardar.Enabled:= False; end; procedure TFormCorrecionCadeca.ButtonSalirClick(Sender: TObject); begin DataModule1.Cadeca.Close; PackDBF('',nomcadeca + '.dbf'); Close; end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Update pack delphi 6? | AbcXxx | Varios | 7 | 27-09-2010 21:11:53 |
Sobre Delphi Pack 2.0 | TDworD | DelphiPACK | 0 | 25-11-2004 09:02:10 |
delphi pack | chona | DelphiPACK | 4 | 14-07-2004 09:45:35 |
Pack de chistes :) | guillotmarc | Humor | 0 | 31-03-2004 18:05:35 |
problemas con Export pack y win 98 | cuxoapat | Impresión | 1 | 20-05-2003 09:56:47 |
|