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

Lazarus Pascal Discussion :

ZQuery et Delete


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut ZQuery et Delete
    Bonjour,

    Toujours avec mes TZeos.

    J'ai ajouter un bouton afin de réaliser les Delete dans ma table.
    Le code du bouton est Bref, c'est du complexe.

    Mais voilà, si la ligne disparait bien du dbGrid, l'enregistrement, lui, il reste, et à l'ouverture suivante, il réapparait !

    Qu'est-ce que j'ai loupé ?

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Un petit commit peut-être ?
    Plus sérieusement , qu'est il indiqué au niveau au niveau de ta TZConnection , propriété transactionIsolationlevel ? (par défaut c'est tiNone)

    d'expérience je te dirais de mettre tiReadCommitted pour avoir un fonctionnement semblable au BDE (ce qui est l'objectif de ZEOS) . Je ne sais d'ailleurs pas pourquoi c'est initialisé à tinone .

    je ne ferais pas de cours sur les transactionIsolationlevel (même si mon pseudo contient Master , cela fait longtemps que j'ai laissé tombé la casquette formateur) il y a quelques tutoriels et explications Firebird sur ce sujet.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut
    OK, merci Maître

    Je vais regarder de ce coté.

    Petite question, pourquoi ça marche en ajout et modif (insert et update) et pas en suppression (delete) ?

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Ach , alors ce n'est pas ça le problème
    il faut en faire voir d'avantage

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Par défaut
    Après test, ce n'est effectivement pas ça le problème.
    J'ai passé le TransactionIsolationLevel à tiReadComitted et le Delete n'a toujours aucun effet !

    Qu'as-tu besoin de plus comme information ?

    Après tests encore plus poussés, les update/insert ne fonctionnent pas !
    Disons que c'est bizarre ! Je n'y comprend plus rien !

    J'ai réussi à ajouter des éléments au démarrage, mais depuis, plus rien !
    Je crois que les éléments ont ajouté avant que je passe par les composants ZEOS !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je sais que je vais passer encore passer pour un vieux c.. et friser le "hors sujet" par rapport à votre problème, mais j'estime que le dbGrid -enfin ce que j'ai pu comprendre de son fonctionnement- doit être utilisé uniquement comme un composant exclusivement d'affichage (dont pas de saisie dedans). Les interceptions et chargements se font au niveau des dataSource et dataSet d'autant que je rappelle que Lazarus n'est vraiment pas net au niveau de l'UTF8 et qu'en plus il faut ajouter à la difficulté le propre encodage de la base (la présence d'un accent dans un mot peut bloquer la transaction de manière inopinée et sans aucun message du debugger de Lazarus : on a l'impression qu'il ne se passe rien et en effet la base n'est pas mise à jour... alors que le dbGrid ne signale rien... C'est normal, il n'est pas fait pour cela.)

    De plus, je crois que vous utilisez du sqLite donc pas d'accès concurrentiel mais avec une saisie en dbGrid compte-tenu qu'il faut bloquer la base (euh l'enregistrement c'est mieux) puis effectuer son action (ce qui nécessite 2 requêtes), bonjour la méthode "dbGrid". Enfin, cela n'engage que moi, mais j'estime que le zUpdateSQL, la saisie directe en dbGrid sont des simplications très théoriques et une perte de temps réelle. Enfin, toujours méthode de vieux "c..", on gère les transactions et verrous par le code SQL et pas par la fonction implémentée pour le transactionnel dans Zeos.

    Sinon, faut pas désespérer... en attendant qu'un illustre "connaisseur" nous montre comment on utilise ce "complexe" en situation de production sur au moins 2 bases [un code portable c'est mieux] gérant les accès concurrentiels... Par exemple, comment identifie-t-on "finement" avec les zUpdateSQL pourquoi une opération de delete ou d'update est interdite ou impossible (bloquée ou déjà effacée) ?

    Cordialement. Gilles
    Dernière modification par Invité ; 26/02/2010 à 14h39.

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Louis Griffont Voir le message
    Qu'as-tu besoin de plus comme information ?
    Ben des morceaux de code , ce serait un bon début

    [Edit] par curiosité je m'en suis refait un sans dbnavigateur , ctrl+suppr faisant le delete fleche vers le bas validant un enregistement ajouté

    ci-joint des images

Discussions similaires

  1. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  2. delete en cascade
    Par bruno270579 dans le forum Requêtes
    Réponses: 8
    Dernier message: 16/12/2003, 17h17
  3. fonction postgresql qui delete un enr
    Par access dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/11/2003, 14h44
  4. [requête] DELETE + SELECT
    Par doohan dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/07/2003, 12h27
  5. [langage] delete de fichier
    Par lolive dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2003, 15h04

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