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

VB.NET Discussion :

Accés concurentiel en VB.NET


Sujet :

VB.NET

  1. #21
    Membre éclairé Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Par défaut
    Je comprends en fait pourquoi tu n'a pas d'erreur de violation d'accès, certainement c'est parceque tu utilise le SqlCommand où le UPDATE et DELETE sont générés automatiquement.

    msdn :
    ..., l'instruction UPDATE ou DELETE générée automatiquement contient une clause WHERE spécifiant qu'une ligne n'est mise à jour que si elle contient toutes les valeurs d'origine et n'a pas été supprimée de la source de données. Cela permet d'éviter que de nouvelles données ne soient remplacées. Quand une mise à jour générée automatiquement tente de mettre à jour une ligne qui a été supprimée ou qui ne contient pas les valeurs d'origine qui se trouvent dans l'objet DataSet, la commande n'affecte pas d'enregistrement et un objet DBConcurrencyException est levé.

    Si vous souhaitez que les instructions UPDATE ou DELETE soient exécutées indépendamment des valeurs d'origine, vous devez explicitement définir UpdateCommand pour le DataAdapter et ne pas compter sur la génération automatique de commandes.
    Donc tu n'est pas obligé faire une gestion manuelle avec une colonne horodateur ni avec une clause where dans le DataAdapter (pour comparer les valeurs modifiées au originales).

  2. #22
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le but est de savoir si tu as besoin de savoir ou non s'il y a des différences
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #23
    Membre éclairé Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Par défaut
    Autre chose que je ne comprends pas bien.
    Tu dis que normalement il doit pas y avoir erreur de violation vu que ADO.NET fonctionne en mode déconnecté, alors que le DataReader fonctionne en mode connecté, enfin, c'est pas clair pour moi.

  4. #24
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le datareader est en mode déconnecté

    enfin ce que je veux dire c'est qu'il n'y a pas de curseur comme à l'époque qui reste ouvert

    on lit les données (c'est rapide et un select pose rarement des verrous sur une base sql)
    on les stocks quelquepart
    puis on ferme la connexion


    à l'époque de vb6, les recordset pouvaient rester connecter à la base via un curseur qui posait un verrou de lecture



    enfin à priori tout ado.net serait en mode déconnecté
    l'histoire du dataset qui trouve des erreurs de violation d'accès, c'est pas du tout géré par la base de données mais c'est juste le dataset qui déclenche ca
    au lieu de faire juste une requete d'update pour faire une modif, il fait une requete (type exists ou select à mon avis) pour vérifier que ce qu'il y a dans la base est egal à ce qu'il avait avant, si c'est le cas il fait la requete d'update, si c'est pas le cas il faut un throw exception
    (donc au passage ca doit etre un poil plus lent d'ailleurs)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #25
    Membre éclairé Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Par défaut
    Je pense qu'il faut mettre résolu . Apparement je n'ai plus rien à dire à moins que si le DataSet me sort encore l'une de ses miracles, sinon, cela me suffit pour bien comprendre le fonctionnement des accès.
    Merci sperot .

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Accès concurentiel en ASP.Net MVC
    Par worm83 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 13/04/2010, 16h44
  2. [vb 2005]Problème de violation d'accès concurentiel
    Par estelledany dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/06/2006, 18h14
  3. Réponses: 8
    Dernier message: 04/05/2006, 22h25
  4. [VB.Net] - Acces à Excel depuis VB.Net
    Par toninonino dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/09/2005, 12h12
  5. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 10h49

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