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

SQLite Discussion :

compacter une base sqlite sous lazarus et linux


Sujet :

SQLite

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 385
    Points : 223
    Points
    223
    Par défaut compacter une base sqlite sous lazarus et linux
    Bonjour,
    Je bricole avec lazarus sous fedora 13 et sqlite.
    Voila mon petit problème : si j'efface des enregistrements avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MQ:='Delete from DEPENSE WHERE CODE='+quotedstr(MCODE);
    mes enregistrements sélectionnés sont bien effaces mais ma base à toujours la même taille, si j'ouvre cette base et table avec SQLITEBROWSER et que le lance la commande compact la taille de ma base diminue.
    Sous Dbase mon apprentissage sur les bases et la programmation (oui c'est vieux) il y avait une commande de compactage utilisable à l'exécution sous delphi, mais sous lazarus et linux existe-t-elle pour une base sqlite similaire utilisable dans une application ?
    Merci d'avance
    PS : je ne lis pas l'Anglais

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Il semble qu'il y a une commande SQL spéciale "VACUUM" sans paramètres.

    Voici du code en ADO.NET qui l'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (SQLiteCommand cmd = conn.CreateCommand())
    {
      cmd.CommandText = "VACUUM";
      cmd.ExecuteNonQuery();
    }
    (tiré du site en anglais: http://sqlite.phxsoftware.com/forums/t/570.aspx)

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 385
    Points : 223
    Points
    223
    Par défaut
    Merci Patrick,
    J'ai utilisé la commande suivante et la taille de ma base a vu sa taille divisée plus de 2 voici le code que j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Sqhistorique.SQL:='VACUUM';
      Sqhistorique.ExecSQL;
    Merci A+

  4. #4
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 385
    Points : 223
    Points
    223
    Par défaut
    A la mémoire avec l'âge, cette question je l'avais posé dans le forum de Lazarus avec la "réindexation" est trouvé à l'époque une réponse supérieure à celle indiquée précédemment en indiquant le nom de la base et pas celui de la table ce qui donnerais dans mon cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Sqhistorique.SQL:='VACUUM AUTO';
      Sqhistorique.ExecSQL;
    à moins que le nom du composant étant lié à la base suffise ?

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

Discussions similaires

  1. [LibreOffice][Base de données] Se connecter à une base Sqlite (sous Linux)
    Par joreveur dans le forum OpenOffice & LibreOffice
    Réponses: 12
    Dernier message: 17/12/2016, 23h41
  2. Insertion dans une base SQLite sous Android
    Par ensinienne dans le forum Android
    Réponses: 1
    Dernier message: 03/04/2012, 09h19
  3. comment réparer et compacter une base access sous vb6
    Par rallain dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/11/2006, 10h42
  4. Compresser/Compacter une base Sqlite
    Par Gold.strike dans le forum SQLite
    Réponses: 1
    Dernier message: 18/07/2006, 10h12
  5. Sauvegarde efficace d'une base MySql sous Linux
    Par Arioch dans le forum Administration
    Réponses: 9
    Dernier message: 19/09/2004, 10h24

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