2009-12-05 19 views
1

Comment générer des fichiers DBF avec Delphi?générer des fichiers DBF

Plus d'informations:

je besoin d'une base de données portable pour fonctionner dans un pendrive

Je ne sais pas si DBF est le meilleur soluttion.

J'aime MySql mais est difficile de trouver une version portable

Je travaille avec XML à ce moment, mais je ne sais pas comment faire une requête.

Répondre

3

TDBF semble être l'un des plus utilisés (et encore maintenus) colis:

http://tdbf.sourceforge.net/

+0

Est en effet toujours utilisé (utilisez-le moi-même dans FreePascal), mais apparemment le mainteneur l'a abandonné. voir par exemple http://bugs.freepascal.org/view.php?id=19961 – reiniero

1

Non traitée en années!
Selon votre version de Delphi et ce que vous voulez faire, vous pouvez utiliser le BDE ou trouver des composants spécialisés qui lisent/écrivent directement au format de fichier natif DBF.

1

Bien que je ne l'ai pas utilisé, il y a un composant jdDbf qui semble être mis à jour récemment et qui semble fonctionner. Une chose à savoir est que le format Dbf a beaucoup de saveurs, mais la plupart des variances semblent être dans les fichiers d'index, donc si vous avez besoin de l'utiliser avec un autre système, vous devrez peut-être les reconstruire.

Pour une base de données intégrée qui fonctionne bien sur un lecteur USB, je voudrais regarder SQLite. Il y a une implémentation Delphi DISQLite3 qui a une version gratuite et professionnelle qui fonctionnerait bien et qui est fortement recommandée. Il existe de nombreux programmes de qualité commerciale qui l'utilisent actuellement, y compris les FeedDemon.

1

Wow, je suis étonné que cette URL soit toujours valide!

Si vous voulez créer un DBF avec l'API BDE, vous pouvez utiliser les techniques ici: http://info.borland.com/devsupport/bde/bdeapiex/dbicreatetable.html

Toutefois, en fonction de la taille de l'ensemble de données que vous allez avoir, cela ressemble à un seul -user application, qui fonctionnerait très bien avec un fichier "MyBase" - un autre nom pour les fichiers utilisés par TClientDataSet. Vous pouvez l'enregistrer au format XML ou binaire (CDS) en définissant simplement la propriété TClientDataSet.FileName, qui sera utilisée pour lire et écrire l'ensemble de données. Vous pouvez même créer des jeux de données imbriqués avec ceci.

Si vous voulez avoir le mode mono-utilisateur le plus efficace, désactivez également le ChangeLog sur TClientDataSet.

procedure TFormCDSDataBug.ButtonOpenClick(Sender: TObject); 
begin 
    ClientDataSet1.FileName := ExtractFilePath(Application.ExeName) + 'MyData.cds'; 
    ClientDataSet1.LogChanges := False; 
    ClientDataSet1.Open; 
end; 
3

Si vous êtes ouvert à d'autres formats, je vous recommande fortement de jeter un œil à Firebird embedded. Je suis sûr que j'ai chargé ma base de données et mon application sur un lecteur flash comme une expérience il y a environ deux ans et ça s'est bien passé. Je me suis retrouvé avec des fichiers DBF pendant longtemps, mais une fois que j'ai fait le changement, je ne reviendrais jamais. Si vous voulez essayer, envisagez d'utiliser DBExpress et le pilote Interbase. Bien que ce ne soit pas officiellement supporté, je n'ai trouvé aucune incompatibilité. Pour un outil de gestion visuelle, procurez-vous l'édition personnelle d'IBExpert.

+0

En utilisant SQLite serait une autre bonne option. DB compile directement dans l'exécutable. Tout ce que vous avez à déployer est le fichier exe et db, aucune installation requise. –

+0

+1 pour SQLite - il devient un standard de facto pour les DB intégrées. –