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

Windows Forms Discussion :

Question d'un nouveau sur UpdateCommand


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut Question d'un nouveau sur UpdateCommand
    Je suis a modifier le code d'un ancien programmeur dans une application VB.NET et lorsque je vais dans l'UpdateCommand du TableAdapter, ça me donne quelquechose comme ça :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE       Table
    SET                ALERTNO = ?, Date = ?, NOTES = ?
    WHERE        (? = 1 AND ALERTNO IS NULL OR
                             ALERTNO = ?) AND (? = 1 AND Date IS NULL OR
                             Date = ?)

    Et je me questionnais sur la validité du code... est-ce moi ou c,est pas normal les "?=1 AND...", qu'est-ce qu'un "1" fait la dedans?

    Seulement pour vérifier si je suis fou ou non??!

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Ça ressemble à une chaine paramétrée pour un SGBD ne supportant pas les paramètres nommés (exemple ancienne version de PostGreSql).

    Quel est le SGBD utilisé et, le cas échéant, le provider utilisé ?

    Quel est le code d'exécution de cette requête ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut
    Je suis en VB.NET (2005) et les données sont sur un serveur SQL 7.0.

    J'ai un DataSet (.xsd) avec un paquet de tables, l'ancien employé a laissé le projet a moitié terminé. J'essai de trouver un sens au garbage que j'ai devant moi. J'ai une base, très basique, en VB.NET.

    Dans mon DataSet j'ai des tables et des TableAdapters. Dans mon TableAdapter j'ai la propriété UpdateCommand qui se divise en trois :
    • CommandType
    • CommandText
    • Parameters


    Le CommandType contient le statement SQL, et c'est là que je retrouve le "? = 1" et je me demande ce qui devrait être vraiment là dans le CommandType...

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 184
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 184
    Par défaut
    Bonjour.

    C'est une ruse pour permettre de requêter soit en passant ALERTNO, date, les 2 ou aucun.
    Il manque des parenthéses pour que cela soit bien clair :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WHERE 
    (
    ( ? = 1 AND ALERTNO IS NULL ) OR ALERTNO = ?
    )
    AND
    (
    (? = 1 AND Date IS NULL) OR Date = ?
    )
    Il y a donc 4 façons d'utiliser cette requête, avec des paramétres différents pour récupérer les enregistrements avec :
    ALERTNO = null et Date = null
    ALERTNO non null et Date = null
    ALERTNO null et Date non null
    ALERTNO non null et Date non null
    A la volée, je suppose que ceux sont 2 champs de filtre facultatif dans une form.

    C'est toute la difficulté de gérer les champs Nullable car comme on le sait Null c'est rien, donc à part faire un "IS NULL", pour les récupérer c'est pas évident.

    Cdt.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut
    J'ai continué de lire sur le sujet, ça me semble beaucoup plus facile de gérer les update et insert à partir d'une stored procedure.

    Est-ce que je me trompe?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Par défaut
    Dans mon form j'ai le code suivant pour mettre à jour l'enregistrement à l'écran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Me.Validate()
    Me.TBLKekChoseSBindingSource.EndEdit()
    Me.TBLKekChoseTableAdapter.Update(Me.KekChoseDataSet.TBLKekChose)
    Et ça me donne l'erreur suivante :
    ERROR [07S01] [Microsoft][ODBC SQL Server Driver]Utilisation non valide du paramètre par défaut

    Au début, je me disais que c'était peut-être le UpdateCommand qui n'était pas fait correctement...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2011, 17h12
  2. Nouveau sur Android / questions diverses
    Par atari dans le forum Android
    Réponses: 1
    Dernier message: 21/01/2011, 09h59
  3. Nouveau sur XML cherche à comprendre un truck...
    Par shadowbob dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 11/02/2006, 16h10
  4. Question "pas si bête" sur le protocole SNMP
    Par arsenik7 dans le forum Développement
    Réponses: 3
    Dernier message: 02/01/2006, 11h49
  5. question (peut-être idiote) sur les vues
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/03/2003, 10h35

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