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

Développement SQL Server Discussion :

Problème pour exécuter une procédure stockée


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème pour exécuter une procédure stockée
    Bonjour à tous,

    J'ai développé une application (réalisée avec windev 20) utilisée par divers clients, nous rencontrons un problème tout nouveau avec un nouveau client.

    Dans un premier temps, en voulant faire une insertion (dans une table de SAGE comptabilité version 16.05), le message rencontré était le suivant :
    INSERT failed because the following SET options have incorrect settings 'ARITHABORT'. Verify that SET options are correct for use with indexed views and =/or indexes on computed columns and/or filtered indexes and/or query and/or XML data type methods and/or spatial index operations.
    Pour résoudre cela, j'ai fait exécuter la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE Yourdatabase SET ARITHABORT ON;
    Ce qui a résolu le problème rencontré ci-dessus.
    Cependant, en voulant exécuter une procédure stockée que j'ai crée, un nouveau message d'erreur est apparu :
    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
    D'après les retours que j'ai pu avoir d'une collègue, elle m'a dit que notre client a 2 versions de sql server : 2008(ou 2008 R2) et 2012
    Dans les drivers ODBC installés, notre client a SQL Server Native Client 10.0 et 11.0

    Question : est-ce qu'il y aurait un conflit dans les versions de SQL Server, ce qui pourrait expliquer la nouvelle erreur rencontrée? Quelles pistes devrais-je exploiter?
    Pour l'instant, je ne sais rien de plus mais si besoin, je pourrais faire des vérifications.

    En ce qui concerne la connexion à SQL Server, je fais appel à la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLConnect("nom de l'instance", "utilisateur SQL", "mot de passe de l'utilisateur SQL", "nom de la base de données SAGE Comptabilité", hOledbSQLServer)
    La fiche explicative de la fonction SQLConnect est disponible ici

    Concernant la procédure stockée que j'utilise, je fais un export des données présentes dans mes propres tables vers une table de SAGE Comptabilité, ce qui implique que je n'ai aucun problème pour insérer dans mes propres tables.

    Merci
    Dernière modification par Invité ; 02/02/2017 à 10h53.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Ceci est parfaitement normal et le problème est bien connu. ARITHABORT est incompatible avec le middleware OLEDB, ce qui est une des raisons pour laquelle MS a officiellement abandonné ce driver depuis plusieurs années !

    Extrait de la doc :
    "
    Deprecated MDAC/WDAC Components

    These components are still supported in the current release of MDAC/WDAC, but they might be removed in future releases. Microsoft recommends, when you develop new applications, that you avoid using these components. Additionally, when you upgrade or modify existing applications, remove any dependency on these components.

    SQLOLEDB: The Microsoft OLE DB Provider for SQL Server (SQLOLEDB), which supports access to Microsoft SQL Server, has been deprecated. Its connectivity to future versions of SQL Server may not be supported. The ability to connect to versions earlier than SQL Server 7 will be removed from the operating system after Windows 7. New applications should use the SQL Server Native Client OLEDB provider, which supports new SQL Server features. Existing applications should migrate to the SQL Server Native Client OLEDB provider as well for better performance, reliability and supportability (see Updating an Application to SQL Server Native Client from MDAC for more information).

    "

    Deux solutions : se priver de ARITHABORT et tout ce qui va avec : colonnes calculées, vues indexées...
    ou bien recompiler l'application avec ODBC par exemple.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il me semble avoir lu quelque part que ce paramètre était apparu dans la version 2005 ou 2008 de sql server, et qu'il était désactivé par défaut lors de la migration du SGBD.
    Et au sujet de ma seconde erreur?

    EDIT: je viens d'avoir le 2nd message d'erreur avec un autre client, l'intitulé en français est :
    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é.

  4. #4
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Si je ne me trompe pas, c'est le message que ton programme Windev te retourne ?
    Si c'est bien le cas il faut récupérer la requête exécuter à partir de Windev et la lancer directement dans SQL manager.
    Tu auras normalement plus d'info sur l'erreur.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Mail.Spam,

    C'est effectivement une erreur qui est remontée par notre ami Windev.
    Au sujet du client dans lequel le message d'erreur était en français, j'ai pu le résoudre, et bien entendu, Microsoft est champion pour nous faire tourner en bourrique. Ce que le message d'erreur n'explique pas clairement, c'est qu'à l'intérieur de ma procédure stockée, je fais appel à 2 fonctions SQL que j'ai moi même créée, le hic, c'est que j'ai été amené à devoir mettre à jour ces 2 fonctions SQL en ajoutant un nouveau paramètre en entrée (ma collègue a fait une mise à jour de mon programme, du coup, tout n'était pas à jour dans SQL SERVER), depuis MSSMS, j'ai supprimé ma procédure stockée ainsi que ces 2 fonctions SQL, mon application recréée alors ces 3 objets (vu qu'ils n'ont pas été trouvé), et là, problème résolu.

    J'ai fais la même manipulation sur mon 1er client, j'attends un retour de ma collègue qui doit faire des tests.

    EDIT: il fallait effectivement supprimer ces 3 éléments afin que mon programme puisse tout mettre à jour.
    Dernière modification par Invité ; 03/02/2017 à 12h24.

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

Discussions similaires

  1. [WD16] Connexion SQL SERVEUR pour exécuter une procédure stockée
    Par philippe30 dans le forum WinDev
    Réponses: 10
    Dernier message: 17/10/2023, 20h54
  2. Réponses: 2
    Dernier message: 25/05/2016, 22h52
  3. problème pour créer une procédure stockée
    Par PoichOU dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 06/09/2007, 09h58
  4. Réponses: 1
    Dernier message: 26/07/2006, 11h23
  5. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34

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