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 :

[Debutant]Erreur Récurent - Requête


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut [Debutant]Erreur Récurent - Requête
    Voilà avec cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for j:=1 to StringGRid1.RowCount-1 do
            begin
            Query5.Close;
            Query5.sql.clear;
            Query5.sql.Add('INSERT INTO Campagne');
            Query5.sql.Add('values (:a,:b,:c,:d)');
            Query5.Params[0].AsInteger:=x;
            Query5.Params[1].AsString:=edit1.text;
            Query5.Params[2].AsString:=stringgrid1.cells[0,j];
            Query5.Params[3].AsDATE:=DATE();
            Query5.ExecSQL;
            x:=x+1;
            end;
    j'ai l'erreur suivante :

    Project IEPS.exe raised exception class EDBEngineError with message 'Table is read only.
    Permission denied.
    File : c:\iepnet\Campagne.DB
    File : c:\iepnet\Campagne.PX'.Process stoped. Use Step or Run to continue.

    l'erreur s'execute au moment de Query5.ExecSQL

    X est initialisé ne vous inquietez pas

    les deux fichiers cités sont bien dans le répertoire indiqué!

    Si quelqu'un pouvait me dire comment résoudre ce problème et ne plus avoir ce problème serait sympa de sa part!merci d'avance!

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    bin l'erreur parait assez simple a comprendre
    tu doit etre sous xp

    il arrive que le systeme pour des raison d'optimisation
    ne relache pas le handle creer sur la table
    donc celle ci est considere comme "occuper"
    et la modification n'est pas permise
    essai de mettre un application processmessage pour laissez le temps au system de liberer la table

    @+ Phil

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Tu as la réponse dans ton message d'erreur

    'Table is read only. Permission denied
    En clair tu as un autre composant qui doit pointer et utiliser ta table.

    Utilises tu un Tdatabase/TadoConnexion/ etc ... ou bien te connectes tu en direct avec chaque composant ?

    PS: tu posts pas sur le bon forum, tu vas te faire tapper sur les doigts

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    voilà tout mon code si ca peut vous aidez à ce que ca soit plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    var
    j,x:integer;
    condition:boolean;
    begin
            ComboBox2.clear;
            ComboBox2.text:='Sélectionnez';
            condition:=false;
     
            //Cherche le Titre
            Query13.Close;
            Query13.sql.clear;
            Query13.sql.Add('Select Titre from Campagne');
            Query13.Open;
     
            Query13.First;
            While not Query13.Eof do
              begin
              if Query13.Fields[0].AsString=edit1.text then
                condition:=true;
                Query13.next;
              end;
     
            //Recherche de CCode
            Query6.Close;
            Query6.sql.clear;
            Query6.sql.Add('Select CCode from Campagne');
            Query6.Open;
     
    ////Déterminer X le chiffre suivant dans la table pour CCode
    if Query6.RecordCount=0 then
    x:=1
    else
    begin
    Query6.last;
    x:=Query6.Fields[0].AsInteger+1;
    end;
     
    //Remplir la table Campagne
    if (edit1.text='') or (condition=true) then
      showmessage('Soit le Champ est Vide soit Le Titre existe déjà')
      else
      if Stringgrid1.cells[0,1]=' ' then
        showmessage('Vous n''avez pas rajouté de donnée dans le tableau')
        else
        begin
            for j:=1 to StringGRid1.RowCount-1 do
            begin
            Query5.Close;
            Query5.sql.clear;
            Query5.sql.Add('INSERT INTO Campagne');
            Query5.sql.Add('values (:a,:b,:c,:d)');
            Query5.Params[0].AsInteger:=x;
            Query5.Params[1].AsString:=edit1.text;
            Query5.Params[2].AsString:=stringgrid1.cells[0,j];
            Query5.Params[3].AsDATE:=DATE();
            Query5.ExecSQL;
            x:=x+1;
            end;
     
            //Code pour l'affichage des Campagnes dans la ComboBox2
         Query8.Close;
         Query8.SQL.Clear;
         Query8.SQL.Add('select titre from campagne');
         Query8.SQL.Add('GROUP BY Titre');
         Query8.Open;
         Query8.First;
         while not Query8.Eof do
            begin
                    combobox2.Items.Add(Query8.Fields[0].asstring);
                    Query8.Next;
            end;
         Query8.Close;
         showmessage('Votre Campagne a bien été enregistré');
         end;

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    deja tu peux remplacer ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Query13.First;
            While not Query13.Eof do
              begin
              if Query13.Fields[0].AsString=edit1.text then
                condition:=true;
                Query13.next;
              end;
    Par ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      if Query13.locate('Titre',Edit1.text,[loCaseInsensitive]) then
      condition := True
    else
      exit; // sort de la procédure ca sert a rien de faire le reste vu ton code
    Query13 et query6 sont ils connectés directement a ta table ou bien passes tu par un TDatabase ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    et si ca aide toujours pas ben voila mon form create sauf que j'ai fermé toute les requêtes donc je ne comprends pas!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    //Affichage StringGrid2 Titre Colonne
         stringgrid2.cells[0,0]:='SDate';
         stringgrid2.cells[1,0]:='CompteDeSCCode';
         stringgrid2.cells[2,0]:='SommeDeSPrice';
         stringgrid2.cells[3,0]:='Total Nombre';
         stringgrid2.cells[4,0]:='Total Montant';
         stringgrid2.cells[5,0]:='Stock de Livre';
     
         //Cache le StringGrid2
         StringGrid2.Visible:=false;
     
         //Initialise les Tableaux d'entier
         integ[1]:=1;
     
         //Je Cache la Form2
         Form2.hide;
     
         //Insère l'image
         //image.picture:="C:\gaetan\Exercice Delphi\IEPNET\image.jpg";
     
         //Code pour l'affichage des Clés pub dans la ComboBox1
         Query1.Close;
         Query1.SQL.Clear;
         Query1.SQL.Add('select MCode from Markets');
         Query1.Open;
         Query1.First;
         while not Query1.Eof do
            begin
                    combobox1.Items.Add(Query1.Fields[0].asstring);
                    Query1.Next;
            end;
         Query1.Close;
     
         //Code pour l'affichage des Campagnes dans la ComboBox2
         Query8.Close;
         Query8.SQL.Clear;
         Query8.SQL.Add('select titre from campagne');
         Query8.SQL.Add('GROUP BY Titre');
         Query8.Open;
         Query8.First;
         while not Query8.Eof do
            begin
                    combobox2.Items.Add(Query8.Fields[0].asstring);
                    Query8.Next;
            end;
     
         Query8.Close;
     
         //Remplissage de la StringGrid
         stringgrid1.cells[0,0]:='Clé Pub';
         stringgrid1.cells[1,0]:='Description';
         stringgrid1.cells[2,0]:='Type';
         stringgrid1.cells[3,0]:='PCode';
         stringgrid1.cells[4,0]:='Produit Vendu';
         stringgrid1.cells[5,0]:='Interêt';
         stringgrid1.cells[6,0]:='NbrExp';
         stringgrid1.cells[7,0]:='Coût';
         stringgrid1.cells[8,0]:='Retour';
         stringgrid1.cells[9,0]:='Pourc.';
     
    end;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    non j'utilise un TQuery tout simplement!

  8. #8
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 951
    Points
    3 951
    Par défaut
    Salut

    Vérifie :
    - l'attribut lecture seule des fichiers de ta base de données (dans le dossier c:\iepnet\),
    - les habilitations de ces fichiers (as-tu les droits pour les modifier)

    Sinon j'ai pas d'idée...

    cdlt

    e-ric

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Pour ouvrir une table j'utilise Database Desktop mais lui aussi apparement desfois il a la même erreur!

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    j'ai fait ta modification et ca dit value assigned to 'condition' never used alors que normalement si

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    pourquoi je suis pas sur le bon forum?c'est bien Delphi non?c'est une erreur de Requête je pense non?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    il ne faut pas que je sort de la procédure vu que pour obtenir mon rajout dans la table campagne je dois avoir false (je sais c'est pas logique que j'ai mis false etc... au lieu de true mais ca revient au même)!

  13. #13
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par ghan77
    pourquoi je suis pas sur le bon forum?c'est bien Delphi non?c'est une erreur de Requête je pense non?
    parce qu'il existe un forum Delphi et bases de données

  14. #14
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Et d'ailleurs, je transfère sur ce dernier.

    ghan77, merci de suivre les (bons) conseils des autres membres à l'avenir.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    excuse j'avais pas vu!je pensais pas que cela dérangerais je ferais plus gaffe la prochaine fois!

  16. #16
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Passe par un Tdatabase tu auras largement moins de problèmes de connexion avec tes tables.

    Le TDatabase va centraliser le système de connexion de tout tes composants , apres pour chacun de tes composants, tu les lies a ce database au lieu de la table.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    j'ai déjà utilisé une fois ce système mais ca ouvrait la table complètement directement par exemple dans la dbgrid sauf que la je vois pas comment l'utiliser

    un truc que je ne comprends pas pourquoi il y a moins de problèmes avec TDataBase que Tquery?pourtant ca devrait être le même but pour chacun non?

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Au secours c'est pour mon stage je vais pété une durite! je suis bloqué!si je ne résous pas ce problème je vais me faire tuer !

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    même en fermant Delphi j'ouvre simplement DataBase Desktop j'ouvre la table(qui est ici vide pour l'instant) quand je clique sur restructure il me dit la même chose :

    Table is Read Only
    File : C:\iepnet\Campagne.PX
    File : C:\iepnet\Campagne.DB

    je n'ai aucun logiciel autre que celui là qui ouvre la table donc je ne comprends absolument pas

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Les Fichiers étaient tout simplement déffectueux apparement vu que je les ai supprimé et recréé!voilà merci pour tout bonne journée!

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

Discussions similaires

  1. Erreur de requête :-(
    Par pekka77 dans le forum ASP
    Réponses: 2
    Dernier message: 28/06/2005, 13h53
  2. [langage] [Débutant] Erreur scalar found
    Par bartmarley dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2005, 11h50
  3. debutant: erreur LNK2001 avec la librairie GSL
    Par drill3 dans le forum MFC
    Réponses: 6
    Dernier message: 25/04/2005, 13h58
  4. [Debutant] Erreur "Unhandled event loop exception"
    Par pilz dans le forum Eclipse Platform
    Réponses: 14
    Dernier message: 08/12/2004, 15h19
  5. [Debutant]erreur lors de la sauvegarde d un code.
    Par Mr_Chut dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/04/2004, 19h42

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