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 :

FireDac Phys Sqlite - Cannot Vacuum - Sql statements in progress


Sujet :

SQLite

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : juillet 2012
    Messages : 54
    Points : 24
    Points
    24
    Par défaut FireDac Phys Sqlite - Cannot Vacuum - Sql statements in progress
    Bonjour,
    Afin de ré-indexer/réorganiser ma base de données à partir du programme, en fin de journée de travail, alors que tout les tableaux de saisie sont clos, j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      DataModule1.Connexion.Commit;
      DataModule1.Connexion.ExecSQL('PRAGMA page_size=16384');
      DataModule1.Connexion.ExecSQL('PRAGMA auto_vacuum = true');
      DataModule1.Connexion.ExecSQL('PRAGMA auto_vacuum = INCREMENTAL');
      DataModule1.Connexion.ExecSQL('VACUUM');
    or je reçois systématiquement la même erreur : FireDac Phys Sqlite - Cannot Vacuum - Sql statements in progress

    Quelqu'un a-t-il déjà rencontré ce problème ? Dans l'affirmative, je suis preneur.
    Bonne journée.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    13 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 084
    Points : 35 592
    Points
    35 592
    Billets dans le blog
    54
    Par défaut
    Bonjour le caillou.

    Bien que je pense que cette question devrait être posée dans Delphi/Base de données à mon avis il faudrait plutôt passer par un TFDScript ou alors mettre des Commit entre chaque ExecSQL.
    Question ? Qui dit commit dit base de données ouverte en mode cacheupdate (AMHA avec SQLite c'est inutile)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2012
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : juillet 2012
    Messages : 54
    Points : 24
    Points
    24
    Par défaut FireDac Phys Sqlite - Cannot Vacuum - Sql statements in progress
    Bonjour Sergio,
    Merci pour ta réponse. Je me suis posé la question du forum... Vaccuum = SQLite, d'où mon choix.

    La base de données n'est pas en mode CacheUpDate, j'ai cru comprendre que c'était inutile avec SQLite.

    Dans mon idée, Commit était plutôt réservé aux données, non aux règles de la BDD. J'ai testé avec un Commit entre chaque, même message d'erreur. J'ai pensé agir sur une DDD fermée mais il ne me paraît pas logique travailler avec une connexion fermée.

    Pour l'utilisation du TFDScript, jamais utilisé ! Je vais tester...

    Encore merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    13 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 084
    Points : 35 592
    Points
    35 592
    Billets dans le blog
    54
    Par défaut
    Bonjour

    alors j'ai fait le test du fdscript
    Nom : Capture.PNG
Affichages : 18
Taille : 31,3 Ko

    button1 lance le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    fdScript1.ExecuteAll;
    end;
    pas d'erreur, maintenant comment vérifier que cela a été effectué ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    13 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 084
    Points : 35 592
    Points
    35 592
    Billets dans le blog
    54
    Par défaut Mais en plus
    En continuant à ruminer et chercher dans la doc de Firedac (puisqu'en fin de compte il s'agit de Firedac plus que SQLite)
    je découvre le composant FDSQLiteValidate et sa méthode sweep
    encore moins fatiguant
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

Discussions similaires

  1. Erreur : [FireDac][Phys][SQLite]-310 Impossible d'exécuter les ensembles
    Par essence-ciel dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/10/2020, 05h46
  2. Pb avec crystal report - erreur 20599 - cannot open sql serveur
    Par casanova_shadow dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/11/2007, 11h45
  3. [DB2 V8] SQL0901N the SQL statement failed
    Par dngaya dans le forum DB2
    Réponses: 1
    Dernier message: 05/10/2006, 06h17
  4. [VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement
    Par Wanoo14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 22h06
  5. Réponses: 5
    Dernier message: 18/04/2005, 12h38

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