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

Lazarus Pascal Discussion :

Créer une base Firebird dynamiquement


Sujet :

Lazarus Pascal

  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut Créer une base Firebird dynamiquement
    Bonsoir,

    Je voudrais savoir s'il est possible de créer une base Firebird dynamiquement sous Lazarus. J'ai installé le composant ZEOSDB, mais je ne trouve pas cette fonction.

    Je sais le faire sous Delphi, mais pas sous Lazarus.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par jojo86 Voir le message
    Je voudrais savoir s'il est possible de créer une base Firebird dynamiquement sous Lazarus. J'ai installé le composant ZEOSDB, mais je ne trouve pas cette fonction.

    Je sais le faire sous Delphi, mais pas sous Lazarus.
    Je ne suis pas certain que cela soit faisable avec les composants Zeos, par contre le composant TIBConnection fournit avec Lazarus (onglet SQLdb de la palette) sait le faire (C'est un peu similaire à ce qui se fait avec Delphi et Interbase...)
    Voila un extrait de code à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
      IBCnx: TIBConnection;
    //...
      IBCnx.HostName := 'localhost';
      IBCnx.DatabaseName := 'C:\Developpement\Databases\Fb2\LazTest.fdb';
      IBCnx.UserName := 'SYSDBA';
      IBCnx.Password := 'masterkey';
      IBCnx.CharSet := 'ISO8859_1';
      IBCnx.Dialect := 3;
      IBCnx.Params.Clear;
      IBCnx.Params.Add('PAGE_SIZE 4096');
     
      IBCnx.CreateDB;
    --
    Philippe
    Philippe.

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    je ne vais faire que citer un Post sur le forum Zeos

    http://zeos.firmos.at/viewtopic.php?p=14900#14900
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Les composants UIB, spécifiquement pour Firebird, permettent de créer une base en dynamique. C'est une suite freeware / opensource de 12 composants permettant de développer avec Firebird

    Ce sont ces compos que j'utilise pour Firebird, en même temps que les compos ZEOS pour accéder à une base Oracle.

    Le composant à utiliser pour créer une base en dynamique est TUIBDatabase avec TUIBDatabase.CreateDatabase


    Le code serait du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TUIBDatabase.CharacterSet := csUTF8;
    TUIBDatabase.DatabaseName := 'MyDatabase.fdb';
    TUIBDatabase.LibraryName := 'fbclient.dll';
    TUIBDatabase.CreateDatabase(csUTF8,4096);
    Sachant que le compo TUIBDatabase a déjà toutes les propriétés visuelles, il ne reste alors dans le code réellement qu'à écrire le CreateDatabase.

    J'ai tellement été aidé sur ce forum, j'espère qu'à mon tour j'ai pu aider

    Laurent

  5. #5
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci de votre aide!
    J'ai trouvé des composants només IBX qui fonctionnent exactement comme les composants interbases de delphi, donc c'est super car je ne me sent pas perdu!

  6. #6
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Avec Delphi, j'avais utilisé les composants IBX avec une base Firebird. Mais je suis vite passé aux compos spécialisés UIB car avec les IBX il y avait des problèmes : plantage sur des transactions, fuites mémoires ... Mais peut-être que depuis ils ont évolué dans le "bon sens".

    L'utilisation des composants UIB se fait de la même façon que les compos IBX.

    Exemple avec les compos IBX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.fieldbyname('mon_champ').asstring;
    Exemple avec les compos UIB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.fields.bynameasstring['mon-champ']
    Les composants UIB sont spécifiquement adaptés à Firebird (développés uniquement pour ce SGBD).

    Voili voilà .... ma petite contribution

    Bonne journée

  7. #7
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par inforock Voir le message
    Avec Delphi, j'avais utilisé les composants IBX avec une base Firebird. Mais je suis vite passé aux compos spécialisés UIB car avec les IBX il y avait des problèmes : plantage sur des transactions, fuites mémoires ...
    Les composants IBX ont toujours ciblé exclusivement Interbase. Le fait qu'ils soient "compatibles" avec Firebird vient du fait que Firebird est initialement un "fork" d'Interbase 6. Plus le temps passe, et plus ces 2 moteurs divergent et de facto moins la compatibilité sera certaine. Elle n'est en tous cas absolument pas garantie par Embarcadero.
    Citation Envoyé par inforock Voir le message
    L'utilisation des composants UIB se fait de la même façon que les compos IBX.
    Pas tout à fait, UIB privilégie la performance et de fait certains composants ne fonctionne pas comme ceux d'IBX, en particulier les dataset : TUIBQuery n'est pas orienté données (pas de lien à un TDataSource), seul TUIBDataSet l'est. TUIBDataSet est également en lecture seule...
    Citation Envoyé par inforock Voir le message
    Les composants UIB sont spécifiquement adaptés à Firebird (développés uniquement pour ce SGBD).

    Eh non ! ce jeu de composants cible indifféremment Firebird ou Interbase. C'est écrit en toutes lettres sur leur site
    --
    Philippe.
    Philippe.

  8. #8
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Pour les compos IBX, je répondais à jojo86 qui, initialement, voulait gérer une base Firebird et indiquait qu'il était parti avec les compos IBX dans sa réponse du 03/05 à 21h29. En réponse, j'indiquais donc les déboires que j'avais eu il y a quelques années à utiliser les compos IBX avec une base Firebird.

    Dans le code que j'ai indiqué, je faisais juste référence à TUIBQUERY dont la syntaxe diffère un peu. Je n'utilise pas, sûrement à tort d'ailleurs, les DATASET et DATASOURCE. J'utilise uniquement les QUERY pour accéder aux données. Mais, je le redis, peut-être et sûrement à tort, je le reconnais.

    Dans les différents news / forums que je lis, il était surtout question de UIB pour Firebird et IBX pour Interbase. Ou alors, je n'ai rien compris ...

    Bon ben, sur ce, je retourne à ma programmation car visiblement mais réponses ne sont pas .... exactes.

    Merci pour les précisions.

    @+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonjour,

    Si je peux moi aussi apporter mes petites précisions...
    J'ai utilisé les IBX avec D7 de 2002 et la version presque identique (pas de TIBScript) de ces IBX pour Lazarus publiée par http://www.mwasoftware.co.uk avec des bases Firebird.
    Si la version D7 ne semble connaitre que la bibliothèque gds32.dll d'Interbase (avec Firebird sous Windows il suffit de renommer fbembed.dll en gds32.dll si on utilise la version embedded, ou en installant la version serveur, cocher l'installation de la bibliothèque client pour Interbase qui copie gds32.dll dans system32), sous Windows la version Lazarus cherche en premier les bibliothèques sous leurs différents noms Firebird et s'adapte sous Linux
    Pour le reste elle n'a évolué ni avec Interbase ni Firebird. Par exemple, elle ne connait pas les lignes de commentaires commençant par "--" ni les "execute block".
    Concernant les UIB, ils semblent bien suivre les évolutions d'Interbase et Firebird dans les environnements Delphi et Lazarus (je n'ai testé que pour Firebird avec Lazarus). Henri Gourvest a je pense de bonnes raisons dans certains cas, de ne pas préconiser l'emploi des datasets (transactions longues). Mais si son UIBDataset est limité en lecture seule, il existe un FBDataset (svn://svn.shamangrad.net/FBDataSet/trunk) compatible avec les UIB et permettant l'écriture au cas où...
    Il existe aussi les Zeos (cités par SergioMaster) qui "vivent" encore. Ils ont l'avantage d'utiliser une syntaxe plus proche des IBX et d'être compatibles avec d'autres SGBDR. Mais, peut-être l'inconvénient de cette compatibilité, je les ai trouvés beaucoup plus lents.

    André

  10. #10
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    J'utilise les compos UIB pour FIREBIRD et les compos ZEOS pour ORACLE. J'utilise la version 6.6.6 des compos ZEOS mais dans le protocole, on ne peut aller que jusqu'à la version 2.1 de FIREBIRD. D'où le fait que j'utilise les compos UIB en plus.

    J'ai aussi remarqué que les compos standards de Lazarus d'accès aux bases de données ne fonctionnaient pas dans des services Windows. Je ne me rappelle plus exactement quel était le message mais en tout cas la compilation ne passait pas. De ce que j'ai compris, il utilisent un handle sur une form alors qu'avec un service windows, il n'y en a pas. Les compos ZEOS permettent alors de contourner le problème.

    Autre soucis rencontré avec les compos standards de Lazarus : les ressources mémoires.

    Mais peut-être n'ai je pas utilisé correctement ces compos.

    Pour en revenir aux compos UIB, Henri GOURVEST suit effectivement les avancées de Firebird / Interbase, et aussi les versions de Delphi et réalise toutes les adaptations.

    Pour ma part, j'utilise donc les versions 6.6.6 de ZEOS et 2.5.1 de UIB. Pour l'utilisation que j'en ai, ça me suffit : c'est stable, simple à utiliser, ça n'utilise pas de ressources mémoire inutile, ... Lors de la première connexion à une base, les compos ZEOS sont effectivement un peu long mais après c'est assez rapide.

    Maintenant, il est vrai que je ne développe que des petits utilitaires pour des besoins spécifiques en complément d'un logiciel de gestion d'entrepôt. Donc je ne connais pas de manière approfondie toutes les possibilités de ces composants n'ayant pas eu à les pousser à fond

    Je m'arrête car je sens que je dérive à grand pas vers le HS par rapport à la demande initiale de jojo86.

    @+

    Laurent

  11. #11
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci de ta participation !

    Bon développement à tous !

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par inforock Voir le message
    J'utilise la version 6.6.6 des compos ZEOS mais dans le protocole, on ne peut aller que jusqu'à la version 2.1 de FIREBIRD. D'où le fait que j'utilise les compos UIB en plus.
    Rien n'empêche de passer en version 7 de ZEOS (qui a les protocoles 2.5 de firebird) il suffit d'utiliser les versions SVN . Excepté sous delphi il n'y a rien a redire a cette version Alpha
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 19
    Dernier message: 04/04/2014, 09h26
  2. Créer un alias à une base Firebird
    Par tempsdescerises dans le forum Firebird
    Réponses: 2
    Dernier message: 29/06/2010, 12h16
  3. [D7][FireBird]Créer une base de données
    Par aityahia dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/04/2007, 14h23
  4. créer une base firebird
    Par richard038 dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/11/2005, 09h08
  5. Refus d'accès à une base Firebird
    Par severine dans le forum Installation
    Réponses: 18
    Dernier message: 04/06/2003, 16h03

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