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

Contribuez Discussion :

Les pièges de WinDev + OLEDB + SQL Server


Sujet :

Contribuez

  1. #1
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    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 émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 576
    Points
    2 576
    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 expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    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
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    beaucoup pour ce programme très instructif !
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    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 expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

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

  7. #7
    Membre à l'essai
    Profil pro
    executive manager
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : executive manager

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Bonjour ,
    Il y 'a qulqu'un qui a travaillé avec windev+SQL SERVER2008 +accès OLEDB

    des requetes (jointure entre deux tables ) du genre (Select ( ( Personel.PRENOM + ' ') + Personel.NOM ) AS NOM )

    C'est pas fonctionnelle chez moi .Et vous ?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1
    Points : 4
    Points
    4
    Par défaut Problème WinDev ou OLEDB
    Bonjour,

    je vais déterrer ce post bien que Microsoft abandonne OLEDB pour SQL server à partir de la version 2014 donc cela n'a plus beaucoup d'importance

    Mais je voulais souligner que ayant été confronté à ces problème il y a quelques années, j'ai téléchargé le petit programme de Hibernatus34 ( merci à lui ) pour le faire tourner dans sa version originale Windev 16 ( donc pas d'amélioration à ce niveau ) sur SQL server 2012 via OLEDB....

    Et là surprise... plus aucun port TCP ne reste ouvert, plus de différence significative entre SqlExec, HExecuteRequeteSQL ou même les ordres Hxxxx.. la seule chose qui n'a pas changé est le POUR TOUT qui rafraîchi la requête au contraire de HlitPremier avec HSans rafraichir, ennuyeux mais pas bloquant..

    Alors puisque le framework de WinDev est resté identique et que seule la version SQLserver et OLEDB à changé, j'ai plutôt tendance à imputer le problème à Microsoft, et c'était d'ailleurs à l'époque la réponse du S.T. de PCSOFT, mais ce qui n'était pas l'avis des DBA à l'époque qui bien entendu n'ont jamais voulu remettre la technologie de Microsoft en cause... bien entendu Microsoft est parfait et surtout leurs solutions sont pérennes car jamais ils ne discontinuent un produit, surtout quand ils est très utilisé….

  9. #9
    Membre habitué Avatar de medbouh
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 171
    Points
    171
    Par défaut
    Merci à tous pour le partage de vos expérience.

    Excellent travail.
    avant de poste pensez à c'est plus constructif.

    n'oublie pas d'utilise le bouton

    si vous trouvez la solution vous meme n'oublie pas de l'indiquer.

Discussions similaires

  1. Problème de format entre Windev et SQl Server
    Par rphenix dans le forum WinDev
    Réponses: 7
    Dernier message: 20/06/2007, 10h36
  2. Droits sur les vues d'une base SQL server 2000
    Par mioux dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/04/2007, 17h13
  3. Réponses: 1
    Dernier message: 24/02/2007, 13h53
  4. [WinDev 9] Problème WinDev et SQL server
    Par routmout dans le forum WinDev
    Réponses: 6
    Dernier message: 08/11/2006, 09h36
  5. les priviléges par défaut sur sql server!
    Par JauB dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/01/2006, 09h48

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