Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev > Contribuez
Contribuez Vos contributions pour la rubrique Windev : articles, cours, tutoriels, faq, comparatifs, tests, sources, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/10/2011, 14h27   #1
Hibernatus34
Membre émérite
 
Inscription : août 2010
Messages : 529
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 529
Points : 992
Points : 992
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.
Hibernatus34 est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 14/10/2011, 16h04   #2
vmolines
Membre Expert
 
Inscription : mars 2005
Messages : 1 682
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 682
Points : 2 494
Points : 2 494
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.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 11h05   #3
Hibernatus34
Membre émérite
 
Inscription : août 2010
Messages : 529
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 529
Points : 992
Points : 992
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.
Hibernatus34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h22   #4
L.nico
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : 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 597
Points : 2 597
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
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 00h24   #5
Arnaud B.
Membre éprouvé
 
Homme Arnaud Benhamdine
Consultant
Inscription : octobre 2004
Messages : 209
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 : 209
Points : 447
Points : 447
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/
Arnaud B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2013, 10h01   #6
Hibernatus34
Membre émérite
 
Inscription : août 2010
Messages : 529
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 529
Points : 992
Points : 992
Bonjour,

Certains m'ont demandé de retrouver les projets de test.
Donc les voici.
Fichiers attachés
Type de fichier : zip KBOLEDB15.zip (588,3 Ko, 33 affichages)
Type de fichier : zip KBOLEDB16.zip (898,0 Ko, 41 affichages)
Hibernatus34 est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h12.


 
 
 
 
Partenaires

Hébergement Web