FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Da Error al crear un indice una tabla DBF
Trato de crear un indice con una tabla AMIGOS.DBF en tiempo ejecucion con un boton y me da error diciendo que el fichero amigos.MDX no exite.
Algo estoy haciendo mal y no veo donde tengo el fallo. Utilizo un componente Ttable en modo diseño y un boton donde tengo el codigo. Esto esta solo en un Form. La tabla tiene 3 campos "NOMBRE, APELLIDO1, APELLIDO2" Trato de crear un fichero que se llame NOMBRE.MDX y me es imposible. Y al mismo tiempo quiero que me cree el indice APELLIDO1.MDX y APELLIDO2.MDX. Pongo en un zip el ejemplo por si me lo pueden corregir Es que estoy aprendiendo y cuando lo termine he prometido subirlo al foro. Muchas gracias. |
#2
|
||||
|
||||
Elimina la opción de: ixPrimary
Si revisas la ayuda de las opciones verás que dice: //---------------------------------------------------------------------- ... ixPrimary: The index is the primary index of the table. (Not applicable to dBASE tables). ... //---------------------------------------------------------------------- Creo que no da lugar a dudas...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Me sigue dando el mismo error
Me sigue dando el mismo error. File amigos.MDX no existe.
Asi que no se por donde atacarle He dejado mi ejemplo en un zip en mi primer hilo. Muchas gracias |
#4
|
||||
|
||||
He estado haciendo algunas pruebas y da la impresión de que en algún momento ya tenías creado el índice y borraste el archivo amigos.mdx. Cuando haces esto, en el archivo dbf queda la marca de que hay un índice pero el archivo no existe.
La forma en que pude arreglarlo fue colocando una componente TTable en el formulario, apuntándola a la tabla amigos.dbf. Al intentar activarla me apareció un mensaje indicando el error y me daba algunas opciones para abrir la tabla. Escogí "Detach" y asunto solucionado. // Saludos |
#5
|
|||
|
|||
Que es el Detach?
El componente Table ya lo tengo puesto en el ejemplo del file zip de mi primer hilo y me dices que con el DeTach esta solucionado.
No se que es esto recuerda que soy super novato. Si me puedes correjir mi ejemplo? Y tambien que el fichero indice no se llame como la tabla sino por el campo que que es indexado. En este caso Nombre.mdx Muchas gracias |
#6
|
||||
|
||||
El como arreglarlo ya te lo dije. Lo acabo de probar con tu archivo y sí funciona. Lo del Detach lo sabrás en el momento que hagas lo que te indiqué en mi mensaje anterior.
Lo de cambiar el nombre no creo que sea posible. Me parece que dbase guarda en un sólo archivo todos los índices y este archivo, hasta donde veo, sólo puede llamarse igual que el dbf. // Saludos |
#7
|
|||
|
|||
Al fin lo he visto
Lo que pasa es que si lo borro tengo que volver de nuevo a modo diseño.
Esto no se puede hacer en modo ejecucion? y ademas he visto que si ya esta creado me da un error que que ya exixte. Osea que no puedo actualizar los indices atraves de un boton. Cuando yo quiera Por lo que veo. Mucgas gracias |
#8
|
||||
|
||||
Pero, ¿para qué los quieres actualizar si ya los tienes creados? Y lo de borrar el índice sí que se puede, usando DeleteIndex. Es sólo que no puedes borrarlo a mano tú mismo.
Y si por alguna razón requieres recrear el índice entonces bórralo primero y luego agrégalo nuevamente. Tú lo estás haciendo alrevés: primero lo creas y luego lo borras. // Saludos Última edición por roman fecha: 04-10-2005 a las 22:56:30. |
#9
|
|||
|
|||
Es que yo los borro a mano
Entonces siempre que los borre primero y luego los cree. Tengo que hacerlo en modo diseño?
Con esto ya terminamos estos hilos. Muchas gracias por tu paciencia. |
#10
|
||||
|
||||
Cita:
En tu aplicación simplemente agrega una rutina para borra el índice, usando DeleteIndex, y otra para crearlo. O bien una sóla que primero use DeleteIndex y luego AddIndex. Así, desde tu aplicación ejecutándose puedes recrear el índice. // Saludos |
|
|
|