[Lazarus-es] archivos indexados

Maxi maximiliano.duarte en gmail.com
Mie Sep 13 21:51:38 CEST 2017


Para jugar está bueno, creas el archivo y ante cada insercion o borrado
agregas o eliminas un nodo de un arbol binario ordenado. (Hermoso recuerdos
de clases de programacion en C++)

Pero si queres jugar y aprender a hacer algo que realmente sirva para una
aplicacion profesional y escalable, usá sqlite o firebird (mono usuario:
enbeded o mulstiusuario) no pesa nada en la pc, o cualquier motor de base
de datos.




El 13 de septiembre de 2017, 11:20, Claudio Romero via Lazarus-es <
lazarus-es en lists.lazarus-ide.org> escribió:

> Hola yo use bastante para migrar bases Dbf a FirebirdSql.
>
> Lo que mas usaba era leer el Dbf sin los indices, el componente TDbf es un
> dataset mas. Bastante simple.
>
> Para los indices el componente TDbf, que soporta los indices MDX (creo
> dbase), no los IDX, ni CDX (foxpro, visual foxpro). El componente TDbf
> quedo deprecated un tiempo, luego lo incorparon de nuevo, no se si le
> agregaron el soporte para foxpro  CDX, creo que alguien estaba en eso.
>
> De todas manera yo abria el DBF con lazarus y lo indexaba en MDX. De esta
> manera no tocaba los CDX.
>
> Aca un ejemplo
>
> procedure IndexaDbf(TablaDbf,campo:string;OpcionesIndices:TIndexOptions);
> var Dbf1:TDbf;
> begin
>     try
>         Dbf1:=TDbf.Create(nil);
>         dbf1.TableName:=TablaDbf;        Dbf1.Exclusive := True;
>         SysUtils.DeleteFile(ExtraerExtension(TablaDbf)+'.mdx');//borra el
> indice
>            Dbf1.Open;
>         try
>             Dbf1.AddIndex(campo,campo,OpcionesIndices);
>         except
>             mensajeExcepcion('No pudo acceder, para indexar, en forma
> exclusiva a '+TablaDbf+'; o campo clave incorrecto');
>         end;
>         Dbf1.Exclusive := false;    Dbf1.IndexName :=campo;
>         Dbf1.readonly:=true;
>     finally
>         Dbf1.Close;    Dbf1.Free;
>     end;
> end;
>
> Despues para buscar en el Dbf indexado, usaba
> if Dbf1.SearchKey(SQLQuery1.FieldValues[campo_clave],stEqual,true) then
> ...
>
> Lo use bastante en produccion en la migración. Y lo sigo usando para tomar
> datos externos de tablas Dbf.
>
> Aun asi no lo recomiendo al Dbf para programar bases de datos locales en
> Lazarus. Si es algo local, es mejor Firebird Embebed, que despues se migrar
> facilmente a un Firebird Sql.
>
> Saludos
>
>
> El 12 de septiembre de 2017, 22:22, Rafael Bidegain via Lazarus-es <
> lazarus-es en lists.lazarus-ide.org> escribió:
>
>> hola a todos.
>>
>> Estoy buscando una librería que me permita usar archivos indexados
>> (indizados)
>>
>> No es una necesidad laboral, solamente quiero jugar un poco.
>>
>> Abrir un archivo en formato dbf y un archivo de indices asociado al
>> archivo dbf es una opción pero estoy buscando algo que me permita trabajar
>> con record de pascal.
>>
>> sql no es una opción que considere.
>>
>> Este es un ejemplo de archivo
>>
>> region,vendedor, producto, cantidad
>> este,lucas,2,10
>> este,veronica,3,10
>> norte,juan,1,10
>> norte,lucas,1,25
>> oeste,juan,1,15
>> oeste,maria,1,20
>> sur,pedro,1,30
>> sur,santiago, 1,30
>>
>> necesito un indice por region, otro por nombre, otro por producto
>>
>> para hacer cortes de control por region o vendedor o producto.
>>
>> desde ya muchas gracias.
>>
>>
>>
>> --
>> Rafael Bidegain
>>
>> Ya que los cuerdos no hablan, hablará el loco.
>> (The Fool, Padraic Pearse)
>>
>> # yo quiero educación libre. ¡YA!
>>
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus-ide.org
>> https://lists.lazarus-ide.org/listinfo/lazarus-es
>>
>>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus-es
>
>


-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20170913/e58fbbb2/attachment-0001.html>


Más información sobre la lista de distribución Lazarus-es