IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Ouvrir un fichier interbase en delphi


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Par défaut Ouvrir un fichier interbase en delphi
    Bonjour,

    Je connais très bien Delphi (je code avec depuis la version 2), mais je n'ai jamais abordé la partie base de données. Et j'avoue que je suis un peu perdu dans toutes les possibilités qu'offre Delphi pour gérer les bases.

    J'utilise aujourd'hui Delphi XE2 Pro et j'ai besoin de lire des données dans un petit fichier interbase (moins de 50 Mo) qu'on me fournit. Je peux très bien me contenter de charger toute la base en mémoire d'un coup, je n'ai donc pas particulièrement besoins de faire des requêtes.

    Quel est le moyen le plus simple de faire cela ?
    Est-il possible de trouver un moyen qui ne me rajoute pas des complications au déploiement (pilotes interbase, etc...).
    Bref, est-ce que Delphi est capable de lire dans ce fichier avec une application standalone ne nécessitant aucune installation complémentaire ?

    Dans le pire des cas, je pourrai toujours convertir ma base en fichier texte, mais si je pouvais éviter cette étape (je vais avoir des mises à jour fréquente de cette base).

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 097
    Par défaut
    Cela n'existe pas vraiment
    le plus proche serait un TIBTable, un par table, cela chargerait toute la table (et encore c'est plus subtile)

    Sinon, tu devrais forcément déployer des éléments, au moins la DLL Embedded de InterBase (si ça existe, plus léger qu'un client serveur)

    Tu peux transformer ton Interbase en un XML Midas pour TClientDataSet, il suffit de mettre MidasLib dans les uses c'est Autonome !

    La création du XML serait TRES facile, un TIBTable, un TDataSetProvider (lié au précédent), un TClientDataSet (lié au Provider)
    Open du Table, Open du CDS, puis SaveToFile(XML) du CDS, le fichier est créé !
    Un petit outil interne pour effectuer ce travail sur ton poste !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 662
    Billets dans le blog
    65
    Par défaut
    Est-il possible de trouver un moyen qui ne me rajoute pas des complications au déploiement (pilotes interbase, etc...).
    Bref, est-ce que Delphi est capable de lire dans ce fichier avec une application standalone ne nécessitant aucune installation complémentaire ?
    il me semble que Interbase propose une version embedded c'est le mot a chercher

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Par défaut
    Merci beaucoup pour vos réponses.
    En fait, je viens de découvrir que la base est au format Firebird et non réellement interbase. Mais je présume que la méthode est la même.
    J'ai trouvé la version embedded de firebird, je vais essayer de tester ça.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 662
    Billets dans le blog
    65
    Par défaut
    je doutais un peu pour interbase embedded , par contre pour Firebird embedded , en suivant bien les instructions d'installation (fbembed.dll+quelques repertoires et fichiers) pas de soucis

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Par défaut
    Bonjour,

    J'ai réussi à lire ma base de données en utilisant un TIBDatabase, un TIBTransaction et un TIBQuery avec la version Embeded de Firebird.

    Maintenant, j'ai un autre soucis, alors que je ne fais que des opérations de lectures sur cette base de données, celle-ci est modifiée quand je ferme l'application. Or cette base va se trouver dans Program files, du coup, cela me provoque des erreurs.

    Comment puis-je faire pour définir cette base en read_only ?
    J'ai essayé de rajouter 'set_db_readonly=1' dans les params. Cela me renvoie 'DPB constant (isc_dpb_set_db_readonly) is not supported.

    J'ai essayé la commande gfix -mode read_only <nombase>
    Mais cela me dit "unavailable database'
    (la base de données a l'extension FDB)

    Vous avez une idée ?

    Merci d'avance.

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 662
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par RenaudM Voir le message
    J'ai réussi à lire ma base de données en utilisant un TIBDatabase, un TIBTransaction et un TIBQuery avec la version Embeded de Firebird.
    les TIBxxxx ne sont pas très recommandés pour cela mais pour des lectures seulement ...
    Maintenant, j'ai un autre soucis, alors que je ne fais que des opérations de lectures sur cette base de données, celle-ci est modifiée quand je ferme l'application. Or cette base va se trouver dans Program files, du coup, cela me provoque des erreurs.
    la BDD est modifiée , normal, puisque des transactions (les lectures) sont effectuées et qu'une trace des transaction est gardée

Discussions similaires

  1. Ouvrir un fichier PDF dans une fenêtre delphi
    Par Wilco dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2021, 08h31
  2. Réponses: 7
    Dernier message: 11/11/2009, 15h19
  3. Ouvrir un fichier *.doc ou *.excel avec Delphi
    Par cincap dans le forum Débuter
    Réponses: 5
    Dernier message: 03/08/2008, 15h06
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo