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

MS SQL Server Discussion :

Transaction, Dépassement de capacité


Sujet :

MS SQL Server

  1. #1
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut Transaction, Dépassement de capacité
    Bonjour à tous,

    J'utilise MS sqlserver avec mon appli delphi et lors de mes transactions il m'arrive d'avoir ce message :

    "Impossible de créer de nouvelle transaction en raison d'un dépassement de capacité"

    Hors cela m'arrive des la premiere transaction, donc j'en ai aucune autre ouverte ou déjà exécutée.

    Avez vous une idée ?
    Je précise que j'attaque la base avec des objets ADO

    merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Et si tu exécutes ta transaction directement via le Query Analyzer ?

  3. #3
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    en fait ma transaction, je l'a fait dans mon code Delphi avec un

    MonADOConnection.begintrans;

    et ça plante la dessus donc SQLserver n'accepte pas ma transaction.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pose la question aux Delphiteurs alors !

  5. #5
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    on m'a renvoyer ici ^^

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oula ! Pas simple ton affaire.

    Essaye alors de traduire ta transaction en T-SQL pur, pour voir si elle passe.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    J'ai un souci identique.

    Je suis en train de migrer mon appli d'Interbase vers SQL Server.

    J'utilise Delphi 7 (les composants db Express) et SQL Server et avec cette appli, j'ai ce message d'erreur "Impossible de créer de nouvelle transaction en raison d'un dépassement de capacité" quand je fais un applyupdate.
    Sachant qu'avec une autre appli plus simpliste (celle qui m'a permis de migrer mes données d'interbase ver SQL Server), je n'ai pas le souci...

    Merci d'avance pour vos réponses,

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    De manière générale : IL NE FAUT JAMAIS PILOTER LES TRANSACTIONS CÔTÉ CLIENT !.
    Pour cela vous disposez côté serveur de procédures stockées.

    Le problème vient sans doute du fait que vous tentez d'utiliser SQL Server en mode de transaction implicite alors qu'il fonctionne en translation explicite.

    Revoyez tout votre code, ou alors commencez votre session par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET IMPLICIT_TRANSACTION ON
    Mais bonjour les performances !

    Ce mode de gestion ancestral des transactions a été abandonné par Oracle en premier, puis Ingres, Sybase... Il ne reste plus guère que Interbase qui l'utilise. Même la norme SQL a abandonné cette obligation...

    A +

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    J'ai paramétré le serveur en "transaction implicite" et j'ai supprimé la gestion côté client mais j'ai toujours le même souci...

    J'ai tendance à dire que le problème vient de mon code mais je ne sais pas s'il n'y aurait pas aussi un paramétrage particulier à faire au niveau de ma base de données... Je suis dans le flou...

    Cette applicatif fonctionne déjà sous interbase et sous MySQL sans souci, et une autre version sous SQL Server. Je vais essayer de trouver les différences entre cette appli et celle qui fonctionne déjà sous SQL server mais si vous avez des idées, je suis preneur!

    Merci d'avance!

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Enfin, j'ai trouvé!!

    Il s'agissait simplement d'une erreur d'utilisation des composants DBExpress.
    Je joins un exemple de programme. La ligne en commentaire était tout simplement celle qui posait problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          ClientDataSetQuerryIS_BN.Active:=False;
          SQLDataSetQuerryIS_BN.Close;
          SQLDataSetQuerryIS_BN.CommandType:=ctQuery;
          SQLDataSetQuerryIS_BN.CommandText:=Requete;
          SQLDataSetQuerryIS_BN.Prepared:=True;
          //SQLDataSetQuerryIS_BN.Open; Partie à ne surtout pas mettre
          clientDataSetQuerryIS_BN.Active:=True;
    Cette syntaxe ne gêne pas Interbase mais pose des soucis avec SQL Server. J'ai appliqué cette modification sur tous mes sources et ça fonctionne.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/10/2014, 16h08
  2. [VBA-E] Problème de dépassement de capacité sous Excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2006, 10h36
  3. Dépassement de capacité
    Par jean-pierre96 dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 16h04
  4. Réponses: 8
    Dernier message: 06/02/2006, 14h34
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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