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

 Delphi Discussion :

Créer une base SQLite avec FireDac


Sujet :

Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Par défaut Créer une base SQLite avec FireDac
    Bonjour

    Tout est dans le titre en fait.

    Tous les tutoriels relatifs à Sqlite / delphi /Firedac commencent tous par nous faire nous connecter à la base de donnée or j aimerais pouvoir utiliser une base SQLite cryptée et j ai lu que la base devait être créer avec firedac au risque qu il ne permette pas de la décrypter, à moins que je n ai rien compris, ce qui est possible (l anglais, pour moi, c est du chinois )

    Donc j attends vos conseils et vous en remercie par avance.

  2. #2
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Bonjour

    Tu n'es pas obligé d'utiliser Firedac pour créer une base de données ( SQLite ou autre )

    Mais si tu le souhaites, il faut que tu utilise pour cela les composants de Firedac pour la créer avec TFDConnection et TFDQuery, un rapide exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     FDConnection.Params.Clear;
      FDConnection.Params.Add('DriverName=Sqlite');
      FDConnection.Params.Add('Database='+ TPath.Combine(pAB_sPathDataBase, 'MaBase.db'));
      FDConnection.Params.Add('FailIfMissing=False'); // création de la BD si celle-ci n'éxiste pas
      FDConnection.Params.Add('DriverID=SQLite');
      FDConnection.Params.Add('ForeignKeys=fkOn');
      FDConnection.LoginPrompt := false;
      FDQuery.FetchOptions.Mode := fmAll;
    et lancer une requête SQL pour créer une table avec un TFDQuery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        FDQuery.SQL.Clear;
        l_sSQL :='CREATE TABLE [Matable]([Champ1] REAL NOT NULL,[Champ2] INTEGER NOT NULL,' +
                       ' CONSTRAINT [] PRIMARY KEY ([Champ1]));';
      	FDQuery.SQL.Add(l_sSQL);
      	FDQuery.ExecSQL();
        FDQuery.Close;
    Si tu débutes avec FireDac, je te conseille de lire l'aide à ce sujet :

    http://docwiki.embarcadero.com/RADSt...tion_(FireDAC)

    http://docwiki.embarcadero.com/RADSt...e_avec_FireDAC

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 582
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Créer une base de données SQLite est, avec Firedac simple.
    Y ajouter mot de passe ou cryptage révèle (pour ce que j'en sais) de fonctionnalités ajoutées par Firedac donc, à mon avis, sans jamais avoir essayé toutefois, une base ainsi crée ne pourrait être ouverte et lue que par Firedac et avec le même algorithme de chiffrement.

    Je pense faire un petit test pour m'en assurer, et pouvoir répondre (je suis curieux)

    @free07 je suis plus partisan d'un FDScript pour ce qui est de la création des tables et cie.

  4. #4
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    @free07 je suis plus partisan d'un FDScript pour ce qui est de la création des tables et cie.
    Je n'utilise pas FDScript, c'est + avantageux dans ce cas la ?

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 582
    Billets dans le blog
    65
    Par défaut
    Oui, je pense.
    Surtout quand tu as pléthore de tables à construire ou pour des questions de versions.
    Je te renvoi à ce dépôt https://github.com/Serge-Girard/Gest...ptesPersonnels (pas tout à fait à jour) où, entre autre, je crée et upgrade une base de données SQLite. (voir la description)
    tu y trouveras au sein du même FDScript deux ensembles de SQL. L'objectif était sur une version existante (version 1 #pragma user_version=1) d'ajouter ensuite une colonne dans une table pour la version 2 (#pragma user_version=2)

  6. #6
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    L'ajout d'un mot de passe et d'un mode de chiffrement dans les paramètres de la base permet effectivement de la verrouiller. Pas possible de la rouvrir en PHP par exemple.

    Pour chiffrer il faut ajouter le paramètre PASSWORD et ENCRYPT dont la type et les valeurs sont disponibles depuis l'assistant de connection du TFDConnection.

    Dans son dépôt Serge utilise une autre méthode pour gérer le numéro de version de la base de données mais c'est sur le même principe.

  7. #7
    Membre confirmé
    Homme Profil pro
    sans
    Inscrit en
    Mars 2020
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2020
    Messages : 182
    Par défaut
    merci à vous pour vos réponses.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/08/2009, 18h00
  2. Créer une base donnée avec droit spécifique
    Par hacksi dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/06/2008, 10h04
  3. Comment Créer et se connecter a une base SQLite avec zeosLib
    Par Tardiff Jean-François dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/11/2007, 09h26
  4. Créer une base Access avec Delphi
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/10/2005, 16h55

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