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 :

[SGBD] Pour moyenne base avec SQL ?


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut [SGBD] Pour moyenne base avec SQL ?
    Salut !

    Après avoir regarder le post-it à ce sujet, les liens proposés et la 3ème partie (chapitre 9) de Delphi 7 Studio...je m'en remets à vous

    Ma base serait de taille moyenne (jusqu'à quelques centaines d'enregistrements) et nécessiterait SQL.
    Je veux dire par là qu'il faut absolument que je travaille avec des requêtes SQL.

    Mon application ne permettrait pas de modifier directement le contenu de cette base.
    J'explique un peu: j'ai un site fonctionnant avec mySQL (jusque là rien d'extra ) et mon application servirait en fait à avoir mon site sur son ordi (donc dispo sans connexion etc). Je crois qu'on appelle ça une BDD monoposte...

    La mise à jour de la BDD "cliente" (sur les ordis) se ferait via le téléchargement d'un fichier SQL généré en PHP etc...
    Au lancement de l'appli, on récupère ce fichier et je charge la BDD puis aucune connexion est nécessaire.

    Donc ma question, sachant que cette application doit être distribuée le plus simplement possible, quel SGBD remplirait ces conditions ?

    BDD de taille moyenne, je pensais à Interbase 6 mais j'ai vu qu'il faut tout un binse pour l'installer etc...

    L'idéal serait d'avoir, par exemple, quelques DLL de la même manière que Paradox si je me trompe pas et non un serveur qui tourne en parallèle avec mon application (car lourd à installer et "trop" pour ma petite appli je trouve).

    Je n'ai utilisé que Paradox sous Delphi, et mySQL sur mon serveur Web mais j'apprends vite

    Merci beaucoup !

  2. #2
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    606
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 606
    Points : 2 064
    Points
    2 064
    Par défaut Re: [SGBD] Pour moyenne base avec SQL ?
    Citation Envoyé par PyRoFlO
    je pensais à Interbase 6 mais j'ai vu qu'il faut tout un binse pour l'installer etc...
    Le setup de FireBird (dérivé d'Interbase 6 OE) permet tout un tas de switch en ligne de commande qui permettent d'installer ce que l'on veux de façon plus ou moins silencieuses.

    Sinon regarde du coté de SQLite : http://www.hwaci.com/sw/sqlite/
    Le serveur est une simple DLL à mettre dans le même dossier que ton EXE.
    Il existe plusieurs wrapper Delphi.
    Pour de petit et moyen volume monoposte c'est probablement l'idéal - d'autant plus que la licence est du type "domaine public" ce qui permet une redistribution totalement libre.
    --
    vanquish

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Merci vanquish !

    Je suis allé sur le site de SQLite et j'ai regardé la doc SQL, apparemment tout (ou du moins les points utiles) est possible comme avec mySQL qui m'a été conseillé par iubito.
    Je parle du LIMIT etc...

    Tu me dis que le serveur n'est qu'une seule DLL qui gère le SQL
    Comment est-ce possible ? (question bête )
    Il doit alors avoir quelques restrictions (hormis la taille de la base) non ?

    Je vais rechercher de la doc pour l'installer en ligne de commande, si tu connais...

    SQLite => une DLL
    mySQL => plusieurs applications

    Si tu me confirmes ces quelques points, le choix ne devrait pas être difficile...

    Merci !

  4. #4
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    606
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 606
    Points : 2 064
    Points
    2 064
    Par défaut
    Citation Envoyé par PyRoFlO
    Je suis allé sur le site de SQLite et j'ai regardé la doc SQL, apparemment tout (ou du moins les points utiles) est possible comme avec mySQL
    Il y a quelques limites comme la non disponibilités des ALTER TABLE.
    (le site propose un contournement, mais qui ne doit être très rapide pour de grosse table).

    Donc il faut faire attention, par rapport à tes besoins.

    Concernant le LIMIT, si ta table fait quelques centaines d'enregistrements ce n'est pas une instrcution indispensable - d'autant plus que tu es en local.

    Je ne sais pas s'il y a des champs auto-incrémenté comme sous mySQL.
    A vérifier si tu en as besoin.

    Citation Envoyé par PyRoFlO
    Tu me dis que le serveur n'est qu'une seule DLL qui gère le SQL
    Comment est-ce possible ? (question bête )
    Parce que le serveur ET le client sont intégré au sein de la même DLL.
    En fait c'est du SQL, mais ce n'est pas du Client/Serveur.
    C'est plutôt une base orienté fichier (comme Access ou Paradox), mais qui a un comprtement très proche du client/serveur et qui ne sais travailler qu'en SQL.

    Citation Envoyé par PyRoFlO
    Il doit alors avoir quelques restrictions (hormis la taille de la base) non ?
    Le principal problème concerne le multi-utilisateurs.
    Théoriquement plusieurs process (qu'il soit sur la même machine ou sur différentes machines du réseau) peuvent taper sur la même base. Mais l'auteur indique qu'il peut y avoir des problèmes de lock sur certaines configurations d'OS.
    Personnellement je ne prendrais pas le risque.

    Je ne suis pas certain que l'on puisse faire une sauvegarde à chaud.

    Mais comme toi tu es en monoposte... le pb ne se pose pas.

    Maintenant, même si je n'ai QUE entendu du bien de SQLite, je ne l'ai jamais utilisé personnellement (du moins pas encore...)
    Mon application est multi-bases (FireBird et mySQL) et j'enviseage une version monoposte basé sur SQLite - justement pour simplifier le pb de éploiment et surtout éviter d'avoir à gérer un process serveur.

    Cela vaudrait peut-être le coup de faire un sondage sur le forum SGBD
    --
    vanquish

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par vanquish
    Il y a quelques limites comme la non disponibilités des ALTER TABLE.
    (le site propose un contournement, mais qui ne doit être très rapide pour de grosse table).
    Aucun problème dans mon cas, je n'en ai pas besoin.

    Citation Envoyé par vanquish
    Concernant le LIMIT, si ta table fait quelques centaines d'enregistrements ce n'est pas une instrcution indispensable - d'autant plus que tu es en local.
    Ah bon ? Toutes manières le LIMIT est supporté, donc c'est parfait .

    Citation Envoyé par vanquish
    Je ne sais pas s'il y a des champs auto-incrémenté comme sous mySQL.
    Regarde ici

    Citation Envoyé par vanquish
    Mais comme toi tu es en monoposte... le pb ne se pose pas.
    Exact donc je passe l'éponge sur ça aussi !

    Seul bémol: je ne comprends pas ce que tu veux dire par wrapper.
    Sur le site SQLite, il ne parle que d'une DLL en C.
    Je suppose que cela a un rapport...

    Pour le sondage, je vais le lancer !

    Encore merci !

  6. #6
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    606
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 606
    Points : 2 064
    Points
    2 064
    Par défaut
    Citation Envoyé par PyRoFlO
    Seul bémol: je ne comprends pas ce que tu veux dire par wrapper.
    Sur le site SQLite, il ne parle que d'une DLL en C.
    Je suppose que cela a un rapport...
    Effectivement.
    C'est très low level comme type d'appel. C'est un peu comme si tu devais dialoguer directement avec l'API de mySQL.
    Donc certains (et on les remercie) ont encapsulé les appels à cette API C, pour les rendre plus Delphi friendly c'est à dire à quelque chose qui ressemble aux composants dont on à l'habitude. Certains descendent de TDataset, ce qui rend SQLite connectable aux contôles Delphi.
    Il y a même un driver dbExpress.

    http://www.torry.net/quicksearchd.php?SID=c3c77efa394b3be53628f06a8b3072ff&String=SQLIte&Title=Yes

    aussi :

    http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

    Si autant de monde (cf la dernière page) ont créé des outils aussi complexes ( comme des drivers ODBC) c'est que le produit ne doit pas être trop mauvais.
    --
    vanquish

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Ok je comprends le principe.

    Je suis allé voir tes liens, et le second me conviendrait parfaitement
    Gratuit, très complet (pas mal de composants).

    Tout m'a l'air pourtant trop parfait pour être vrai.
    Je me demande si ces compos sont fiables, j'espère me tromper !

    Car, après quelques recherches sur les forums, très peu utilise SQLite.
    L'aide serait alors minime, ce qui ne me rassure pas trop.

    Aurais-tu des retours (positifs) de ce couple SQLite/Delphi ?

    Citation Envoyé par vanquish
    Si autant de monde (cf la dernière page) ont créé des outils aussi complexes ( comme des drivers ODBC) c'est que le produit ne doit pas être trop mauvais.
    Entièrement d'accord !

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Cool je me réponds à moi même

    Donc, je pense avoir tout compris quant à l'utiliastion de SQLite avec Delphi.

    Je ne suis pas très sûr de mon anglais, c'est pour ça que j'aimerai que tu (ou quelqu'un d'autre bien entendu...) me confirmes mes dires.

    Installation Delphi:

    Je place la DLL dans le même répertoire que l'application (ex: C:\Borland\Projects\MonProg\sqlite.dll).
    J'installe les compos nécessaires (ici).
    Terminé ?

    Installation client:

    Je livre cette DLL dans le package de mon application.
    Je la place dans le même répertoire que l'application.
    C'est terminé ?

    J'aurais pu tester vous allez me dire, mais je n'aime pas tellement installer tout un tas de trucs sans trop savoir si...

    Merci !

  9. #9
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 15
    Points : 29
    Points
    29
    Par défaut
    Salut PyRoFlO,

    Pour les deux types d'installations, c'est bien cela. Juste une DLL avec ton appli et des composants sur Delphi.

    Le setup de FireBird (dérivé d'Interbase 6 OE) permet tout un tas de switch en ligne de commande qui permettent d'installer ce que l'on veux de façon plus ou moins silencieuses.
    Il est possible d'utilise FireBird en mode Embed, comme cela il n'y a que quelques DLL (dont GDS32.DLL, ou équivalent firebird, je sais plus) et autres fichiers comme les fichiers MSG. Pour cela un simple fichier texte de configuration doit fournir le nom des chemins d'accès aux fichiers pour la DLL de firebird.

    Tu me dis que le serveur n'est qu'une seule DLL qui gère le SQL
    Comment est-ce possible ? (question bête )
    Il doit alors avoir quelques restrictions (hormis la taille de la base) non ?
    En réalité SQLite n'est pas une DLL à l'origine, mais une simple librairie écrite en C et qui donc se compile directement dans l'éxécutable. La DLL n'existe que pour les autres langages de prog, dont python, delphi, VB.

    La principale "restriction" de SQLite (mais qui n'en est pas une, suivant l'usage) c'est qu'en fait la base de données est typeless. Seul les champs Integer primary key sont controlés pour l'écriture de valeurs entières, sinon les champs sont des chaines de caractères.
    C'est même un mode que l'on active ou non pour que SQLite retourne le type des champs avec le résultat des requêtes.
    (Enfin, c'est à vérifier au cas ou je me trompe. et tout cela peut changer)

    j'ai quelques informations sur mon site sinon, au cas ou :
    http://www.sed-p.net/rubrique.php3?id_rubrique=10

    Pour ma part sinon je n'utilise pas vraiment SQLite, mais j'adore le principe ! C'est ce qu'il y a de plus petit et rapide pour du SQL embarqué, il me semble.

    Bon code, a+

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Merci pour ces précisions ThomasB

    Je me suis décidé, j'ai choisi SQLite.

    Je l'ai testé toute la soirée à l'aide des composants disponibles ici:
    http://www.aducom.com/sqlite/

    Tout fonctionne bien, à noter qu'il faut utiliser la version de la DLL dispo sur ce site car un composant est incompatible avec la dernière version, le codeur y travaille.

    Je peux clore ce topic, merci à vous deux de m'avoir conseiller SQLite qui pourrait se résumer en 3 mots: simplicité, légèreté, embarquée

    @+

  11. #11
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut Re: [SGBD] Pour moyenne base avec SQL ?
    Citation Envoyé par vanquish
    d'autant plus que la licence est du type "domaine public" ce qui permet une redistribution totalement libre.
    Interbase 6 aussi...
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Je cherche désespérement un outil pour s'entrainer avec SQL
    Par schw4rtz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/04/2015, 13h53
  2. Réponses: 4
    Dernier message: 13/06/2014, 17h30
  3. Quel SGBD pour une base relativement lourde ?
    Par belsinker dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 08/03/2010, 14h22
  4. Importation de base avec SQL outilde conception Merise
    Par philippe47 dans le forum Schéma
    Réponses: 2
    Dernier message: 04/10/2007, 07h13
  5. jointure et rechche dans une base avec sql
    Par sabrina22 dans le forum Bases de données
    Réponses: 9
    Dernier message: 06/01/2006, 13h27

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