Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-08

Crear índice secundario doble en una tabla DBase

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Antonio Caballero Martínez

Hola a tod en s ...

Quiz�s sea una pregunta de principiante, o de novel; pero no consigo encontrar informaci�n por ning�n sitio ...

Utilizo el componente TDbf por defecto que incluye Lazarus (versi�n 0.9 si no recuerdo mal del componente; y versi�n Daily Snapshoot de no hace muchos d�as).

Tengo una tabla DBase (*.dbf) sobre la que quiero crear un �ndice doble secundario (es decir, un �ndice secundario basado en DOS campos de la tabla). Para un �ndice basado en un solo campo, se tiene [s�, es lo mismo que en el tutorial
http://wiki.lazarus.freepascal.org/Lazarus_Tdbf_Tutorial]:

     MyDbf.Exclusive := True;
     MyDbf.Open;
     MyDbf.AddIndex('custid', 'Id', [ixPrimary, ixUnique]);
     MyDbf.AddIndex('custname','Name', [ixCaseInsensitive]);
     MyDbf.Close;

En lo anterior, supongo que MyDbf es un TDbf1 con campos de nombre Id (AutoInc), Name (String 80), y Surname (String 80) ...

En el c�digo anterior, creamos un �ndice �nico y primario para el Id de cliente; y an�logamente uno secundario para el nombre.

Pero, supongamos que por requerimientos necesito tener separado el nombre y los apellidos en diferentes campos; y por lo tanto mi pregunta es: �C�mo puedo crear por c�digo un �ndice secundario basado en los campos Name y Surname simult�neamente?

Para una posterior relaci�n master-detail; puedo referirme a varios
campos de la tabla separando los 2 campos por un punto y coma. Es decir:
     MyDbf.IndexName := 'IndiceDobleNombreyApellidos'; // este es el
�ndice secundario doble anterior ...
     MyDbf.MasterSource := dsClientes;
     MyDbf.MasterFields := 'Name;Surname';

El problema, conforme he dicho antes, es c�mo crear en tiempo de ejecuci�n (por c�digo), el �ndice basado en el nombre y los apellidos .. �Alguna sugerencia? �Alguna idea?

Muchas gracias de antemano a todos ...

Reply by email