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

WinDev Discussion :

Comportement Tablesupprimeselect bizarre [WD20]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut Comportement Tablesupprimeselect bizarre
    Bonjour,

    J'avoue être perdu dans les instructions Windev, j'utilise une base de données SQL avec connexion OLEDB.
    Quand je veux supprimer une ligne d'une table avec l'instruction TablesupprimeSelect ou Tablesupprime avec l'indice, SQL l'interprète comme un DELETE de ma table "Familles" présent dans la base SQL !!!

    Ma table est en programmation alimenté par une requête.

    Je ne comprends pas du tout ce qui se passe, pourquoi cette table plutôt qu'une autre ?

    Voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TableSupprimeTout(TABLE_MAJ)
    i est un entier
    NbSelection est un entier 
    indice est un entier
    NbSelection = TableSelectOccurrence(TABLE_REQ_Reserv_membres)
    POUR i = NbSelection A 1 PAS -1
    	indice=TableAjouteLigne(TABLE_MAJ,TABLE_REQ_Reserv_membres.COL_Prenom[TableSelect(TABLE_REQ_Reserv_membres,i)],TABLE_REQ_Reserv_membres.COL_Nom[TableSelect(TABLE_REQ_Reserv_membres,i)],TABLE_REQ_Reserv_membres.COL_ID_Membre[TableSelect(TABLE_REQ_Reserv_membres,i)])	
    	TableSupprimeSelect(TABLE_REQ_Reserv_membres)
    FIN
    Merci pour votre aide

    Ben

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    3 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 3 563
    Points : 8 236
    Points
    8 236
    Par défaut
    Bonjour,
    2 remarques :

    Dans le code que tu postes, il y a une erreur avec la fonction tableSupprimeSelect.
    Il faut mettre cette commande après la boucle, et pas dans la boucle.

    D'autre part, l'aide de la fonction TableSupprimeSelect est très claire :

    Suppression dans un champ Table ou Table hiérarchique fichier
    La fonction TableSupprimeSelect supprime les enregistrements correspondants dans le fichier de données associé au champ...
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 382
    Points : 7 535
    Points
    7 535
    Par défaut
    Un TableSupprime ne serait-il pas mieux indiqué ?

    Mais, à voir s'il ne vas pas faire la liaison non plus. Dans ce cas, il vaut mieux passer par une table mémoire.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  4. #4
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 139
    Points : 4 807
    Points
    4 807
    Billets dans le blog
    22
    Par défaut
    Bonjour


    Je suis d'accord avec les remarques de frenchsting et tbc92 pour l'utilisation de la fonction TableSupprime ou tableSupprimeSelect.

    Ma table est en programmation alimenté par une requête.
    Ce que je trouve bizarre, c'est le DELETE automatique au vue de la desription de la table.

    Peux tu nous donner le type de remplissage de la table : Onglet contenu de la description

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    Merci pour les infos,je comprends mieux mais toujours pas le DELETE sur une Table SQL qui n'a rien à voir !

    La table est remplie par programmation.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    Je me permets d'ajouter des infos complémentaires :

    J'ai donc modifier le code comme conseillé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TableSupprimeTout(TABLE_MAJ)
    i est un entier
    NbSelection est un entier 
     
    NbSelection = TableSelectOccurrence(TABLE_REQ_Reserv_membres)
    POUR i = NbSelection A 1 PAS -1
    	TableAjouteLigne(TABLE_MAJ,TABLE_REQ_Reserv_membres.COL_ID_Membre[TableSelect(TABLE_REQ_Reserv_membres,i)],TABLE_REQ_Reserv_membres.COL_Prenom[TableSelect(TABLE_REQ_Reserv_membres,i)],TABLE_REQ_Reserv_membres.COL_Nom[TableSelect(TABLE_REQ_Reserv_membres,i)])	
    	TableSupprime(TABLE_REQ_Reserv_membres,TableSelect(TABLE_REQ_Reserv_membres,i))
    FIN
    J'utilise donc Tablesupprime sur une table mémoire. Pour indentifier le problème SQL ,j'ai ajouter une contrainte d'intégrité et voici ce que ça donne avec la fonction Tablesupprime :



    Que s'est-il passé ?
    Erreur (intégrité) de l'accès OLE DB.
    Numéro d'erreur = 170160

    Erreur d'intégrité lors la suppression de l'enregistrement de la table <>.

    Code erreur : 70015
    Niveau : erreur non fatale (EL_ONRETURN)
    Code erreur WD55 : 15

    Message d'erreur système :
    Description = L'instruction DELETE est en conflit avec la contrainte REFERENCE "FK_Cours_Familles". Le conflit s'est produit dans la base de données "PS", table "dbo.Cours", column 'Id_Familles'.
    Source = Microsoft OLE DB Provider for SQL Server
    SQL State = 23000
    Error Number = -2147217873 (0x80040e2f)
    Native Error Number = 547 (0x223)


    Description = L'instruction a été arrêtée.
    Source = Microsoft OLE DB Provider for SQL Server
    SQL State = 01000
    Error Number = -2147217873 (0x80040e2f)
    Native Error Number = 3621 (0xe25)


    Description = Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.
    Source = Microsoft OLE DB Provider for SQL Server
    SQL State = 01000
    Error Number = -2147217887 (0x80040e21)

    Dump de l'erreur du module 'wd200hf.dll' (20.0.58.1).
    Identifiant des informations détaillées (.err) : 72805
    Informations de débogage :
    IEWDOLDB=111.36
    Module=<WDOLDB>
    Version=<20.0.19.0>



    [Current Recordset parameters]
    Wanted = LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenKeyset>, Capacities = <10fef00>
    Got = LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenKeyset>, Capacities = <10fef00>
    Provider : SQLOLEDB
    Utilisateur : Bernard
    Source de données : 62.210.162.199
    Base de données : PS
    Unicode supporté : 1
    Code page du WL : 1252
    Code page de la connexion : UTF-16

    Version du MDAC = <6.3.9600.16384>.

    [Data format]
    Query Parameter Checked = <0> = <>
    Query Parameter Needing conversion = <96> = <BOOLDECIMAL>
    DecimalSeparator = <Undefined>
    DateFormat = <Undefined>

    [Cursor settings Match]
    LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenKeyset>, Capacities = <10fef00>
    LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
    LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>

    [Recordset 1]
    Settings = <LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenKeyset>, Capacities = <10fef00>>
    CapacitiesSupported = <adAddNew;adApproxPosition;adBookmark;adDelete;adFind;adHoldRecords;adMovePrevious;adNotify;adResync;adUpdate;adUpdateBatch;>
    CapacitiesNotsupported = <adIndex;adSeek;>
    HFFunctionsSupported = <HAjoute;HSupprime;HModifie;HPositionCourante;HAvance;HRecule;HLitPremier;HLitSuivant;HLitPrecedent;HRecherche;>
    HFFunctionsNotsupported = <>


    Informations supplémentaires :
    EIT_NATIVECODE : <170160>
    EIT_ADOCODE : <-2147217873>
    EIT_BASECODE : <547>
    EIT_ODBCDESCRIPTION : <L'instruction DELETE est en conflit avec la contrainte REFERENCE "FK_Cours_Familles". Le conflit s'est produit dans la base de données "PS", table "dbo.Cours", column 'Id_Familles'.>
    EIT_ODBCCODE : <23000>
    EIT_LOGICALTABLENAME : <REQ_Reserv_membres>

    Si je comprends bien la fonction Tablesupprime n'est pas supporté pour une connection SQL par OLEDB !

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 382
    Points : 7 535
    Points
    7 535
    Par défaut
    Ca c'est du dump d'erreur

    Je ne comprends pas pourquoi ca merde à ce point . Essaye de recréer table directement en table mémoire.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    mai 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 210
    Points : 164
    Points
    164
    Par défaut
    Et bien voilà, fallait y penser bravo

    j'ai recrée la table et la ça fonctionne !

    Merci

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

Discussions similaires

  1. Comportement TUpDown Bizarre !
    Par Koalachris dans le forum Composants VCL
    Réponses: 5
    Dernier message: 11/06/2016, 02h37
  2. Comportements très bizarres
    Par DotNET74 dans le forum Windows Phone
    Réponses: 4
    Dernier message: 23/06/2011, 12h09
  3. Comportement navigateur bizarre (firefox et IE6)
    Par mendoz dans le forum Internet
    Réponses: 0
    Dernier message: 15/06/2008, 21h33
  4. [AJAX] Comportement très bizarre besoin d'aide
    Par vallica dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/08/2007, 14h20
  5. comportement tres bizarre
    Par pimousse_cerise dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/06/2007, 14h08

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