Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre Expert
    Inscrit en
    août 2010
    Messages
    639
    Détails du profil
    Informations forums :
    Inscription : août 2010
    Messages : 639
    Points : 1 243
    Points
    1 243

    Par défaut Les pièges de WinDev + OLEDB + SQL Server

    Bonjour,

    Après avoir travaillé sur un très gros projet HF à convertir en SQL Server via OLE DB, j'ai constaté quelques problèmes auxquels il faut faire attention.

    Voici un petit projet quick & dirty qui illustre les points les plus croustillants.

    Pour le tester, il faut un serveur SQL accessible via OLE DB par TCP/IP.
    Dans "Provider" vous pouvez saisir "SQLOLEDB" pour SQL Server, ou "SQLNCLI" pour SQL Server 2005 ou "SQLNCLI10" pour 2008.

    Si vous saisissez le provider "MSDASQL" et que dans "Serveur" vous mettez le nom d'une source ODBC, vous aurez "ODBC via OLE DB". Mais ça m'a l'air assez mauvais comme provider, il m'a semblé qu'un SELECT bloquait la table complète jusqu'à la fermeture de la requête, il faudra vérifier ça.

    Enfin, il y a la possibilité de saisir le nom d'une source ODBC pour faire une petite comparaison de performances.

    Les sujets abordés sont :
    - Utiliser un curseur serveur (curseur par défaut) pour autre chose que des SELECT peut amoindrir les performances et la fiabilité
    - Les SELECT agrégats gaspillent des ports TCP et peuvent bloquer toute connexion pendant quelques minutes
    - Différence de performance entre SQLExec et HExécuteRequêteSQL
    - Différence de performance entre OLE DB et ODBC
    - Pourquoi il ne faut pas utiliser HModifie, sous peine de plantages rares et incompréhensibles
    - hRequêteSansCorrection
    - hLimiteParcours
    - hSansRafraîchir, et le problème de POUR TOUT pour parcourir un résultat de requête
    - Les sources de données locales qui ne le sont pas réellement

    WD15 : http://www.mediafire.com/download.php?6tio7cr20ed9r7u
    WD16 : http://www.mediafire.com/download.php?gy90lj2b05c2kg9

    Note : j'ai pris soin de n'utiliser que du code SQL compatible avec n'importe quelle base (je crois), donc vous pouvez tester avec autre chose que SQL Server, mais je ne sais pas qui d'autre maintient un provider OLE DB.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mars 2005
    Messages : 1 682
    Points : 2 327
    Points
    2 327

    Par défaut

    Excellent

    J'ai regardé rapidement mais il faudra que je regarde ça en détail, c'est très interessant. Merci de partager votre expérience OleDb Windev.

  3. #3
    Membre Expert
    Inscrit en
    août 2010
    Messages
    639
    Détails du profil
    Informations forums :
    Inscription : août 2010
    Messages : 639
    Points : 1 243
    Points
    1 243

    Par défaut

    Bonjour,

    J'ai mis à jour les 2 projets :
    - Correction du test des agrégats et connexions TCP.
    - Utilisation d'un curseur forward only pour la comparaison avec SQLExec/SQLAvance.
    - Ajout d'un SELECT avec un plus gros résultat pour la comparaison SQLExec/HExécuteRequêteSQL (avantage grandement SQLExec).
    - Ajout d'un petit commentaire pour dire que le curseur forward only est aussi rapide que le curseur client sur les requêtes de modif.

  4. #4
    Modérateur
    Avatar de L.nico
    Homme Profil pro Nicolas LAURET
    Chef de projet en SSII
    Inscrit en
    novembre 2003
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas LAURET
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2003
    Messages : 1 104
    Points : 2 352
    Points
    2 352

    Par défaut

    beaucoup pour ce programme très instructif !
    Modérateur Business Intelligence / Windev

    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  5. #5
    Membre expérimenté
    Homme Profil pro Arnaud Benhamdine
    Consultant
    Inscrit en
    octobre 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Nom : Homme Arnaud Benhamdine
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2004
    Messages : 253
    Points : 504
    Points
    504

    Par défaut

    Super !
    Très intéressant.

    Pour PostgreSQL, il y a plusieurs drivers OLE DB qui sont maintenus, je vais tester tout ça si je trouve le temps...

    Au fait, OLE DB n'a plus que 7 ans à vivre
    http://www.developpez.com/actu/36666...s-aux-donnees/

  6. #6
    Membre Expert
    Inscrit en
    août 2010
    Messages
    639
    Détails du profil
    Informations forums :
    Inscription : août 2010
    Messages : 639
    Points : 1 243
    Points
    1 243

    Par défaut

    Bonjour,

    Certains m'ont demandé de retrouver les projets de test.
    Donc les voici.
    Fichiers attachés Fichiers attachés

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •