Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ttable.index (https://www.clubdelphi.com/foros/showthread.php?t=40319)

tather 13-02-2007 15:06:49

Ttable.index
 
Antes de nada buenas a todos.
os cuento
estoy haciendo un programa con tablas y a la hora de indexar me da un problema que he solucionado pero creo que no de la mejor manera.

mi programa tiene unos edit para insertar campos un dbgrid donde muestra la tabla y los tipicos botones: (alta,baja,modificar)
cuando activo el form tengo puesto para indexar lo siguiente:

tfactura.AddIndex('empresa','empresa;fecha',[ixCaseInsensitive, ixNonMaintained]);
tfactura.IndexName:='empresa';

esto lo he copiado de una pagina por que no tengo ni idea como funciona un index, pero hasta aqui todo bien, creo el indice, y despues lo llamo.
el problema es cuando introduzco un alta o modifico que me sale un error que me dice algo como que el indice esta corriendo, y lo he solucionado de la siguiente forma:

Al pulsar el boton alta
tfactura.IndexName:='';
tfactura.DeleteIndex('empresa');
TFactura.Append;
introduzco los datos
Tfactura.post;
tfactura.AddIndex('empresa','empresa;fecha',[ixCaseInsensitive, ixNonMaintained]);
tfactura.IndexName:='empresa';

esto no tiene que estar muy bien, no da error por algo mas limpio tiene que haber ya que borro el indice y despues lo creo de nuevo.
Yo lo que quiero es crear el indice y despues llamarlo, no tener que borrar,

Disculpen si me extendi mucho, lo que quise es explicarlo lo mejor posible.
Un saludo y muchas gracias.

marcoszorrilla 13-02-2007 15:20:04

Lo que estás haciendo es añadir un índice a una tabla, lo cual no está bien pues se supone que la tabla ya tiene que tener dicho índice, porque sino lo estás creando cada vez que te posicionas en ella.

Crealo en tiempo de diseño y no te preocupes más por el índice, si es en Paradox márcalo como mantenido y además es obligatorio que tengas una clave primaria en la tabla, sino encuentras ninguna te creas una autoincremental.

Un Saludo.

tather 13-02-2007 20:05:51

tengo un pequeño problema, como he dicho ante no tengo ni idea de indices,
y no se como hacerlo en tiempo de diseño, si me dices donde mirarlo o me lo explicas te lo agradezco.
la DB es paradox
Un saludo.

marcoszorrilla 13-02-2007 20:31:49

1. Abre la tabla con el DatabaseDesktop.
2. Sino tiene una clave primaria creala, lógicamente es un campo que no puede repetirse, sino no hay ninguno añade un campo autoincremental, ojo la clave primaria debe ser el primer campo de la tabla.
3. Ahora vas creado los índices que vas a necesitar en la aplicación.
4. Una vez hecho esto y marcar todos los índices como mantenidos ya no tendrás que preocuparte por los índices ellos van a seguir ahí y se actualizarán atomáticamente.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 00:36:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi