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

WinDev Discussion :

Choix entre accès natif SQL Server et OLE DB [WD16]


Sujet :

WinDev

  1. #41
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Hibernatus34 Voir le message
    Bonjour,

    L'accès natif est (un peu) plus rapide sur presque toutes les fonctions.
    Mais il pose quelques problèmes pour le moment, comme un changement de session entre les transactions (à cause du mode MARS), ou la confusion entre NULL et 0 dans les paramètres de requêtes, une mauvaise gestion des messages d'erreur...
    Personnellement, en ayant développé tous les outils pour m'en passer, je lui préfère l'accès OLE DB "normal", qui est mieux supporté (et pourtant gratuit).
    L'accès natif existe en version ODBC, mais il ne fonctionne pas encore aussi bien que la version OLE DB.

    L'accès ODBC par OLEDB posait des problèmes de blocages de tables, je pense qu'il faut l'éviter.

    Sachez que l'accès OLE DB ou ODBC, que ça soit avec l'accès "natif" ou "normal", nécessite l'installation d'un driver côté client, au moins si on veut une gestion des dates correcte.
    Merci pour votre réponse Hibernatus.
    Alors par l’accès OLE DB l'utilisation des fonction "Hajoute()" , "Hmodifie()","HLitRecherchePremier()", etc... n'est pas possible ? Il faut passer par la fonction HExecuteRequete() ?

    J'ai essayer d’utilisé la fonction HLitRecherchePremier() pour faire un SELECT tres simple. Et la requête est très longue. J'ai l'impression que Windev charge toute la table en mémoire. Alors que avec la fonction HExecuteRequete() le résultat est instantané !

    Merci

  2. #42
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour,

    Que ce soit en accès natif ou non, HLitRecherchePremier c'est le mal

  3. #43
    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
    Normalement HLitRecherchePremier devrait fonctionner correctement.
    Et en accès natif ça fait partie des fonctions réellement plus rapides.

    Il y a peu de contre-indications à HAjoute, HModifie etc. à part un problème de curseur pour HModifie et HSupprime en accès OLEDB "normal", et des problèmes de conversion de données (WinDev va mal gérer la précision des dates et décimaux par exemple).

    Personnellement j'utilise encore pas mal HAjoute, mais pas du tout HModifie/HSupprime/HLitRecherchePremier. Mais c'est parce que j'ai l'équivalent en mieux dans mes libs, sinon ces fonctions restent utiles pour alléger le code et le rendre plus facilement maintenable, au lieu de le cribler de requêtes.

    Vous aurez du mal à atteindre les performances de HAjoute avec des requêtes, par exemple.

  4. #44
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Non le HLitRecherchePremier() n'est pas du-tout rapide. Peux être c'est parce que je travail actuellement sur Firebird 2.1.
    J'essayerais quand j'aurais SQL Server 2012 debut séptembre.
    En tout cas merci Hybernatus pour cette éclaircissement sur les différentes possibilité pour se connecté au une base SQL Server.
    Je ne manquerais pas de revenir sur ce topic pour donné mon ressenti sur les différentes méthode d’accès est sur la rapidité des fonctions "H".

    A+

  5. #45
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Hibernatus34 Voir le message
    Bonjour,

    Mais il pose quelques problèmes pour le moment, comme un changement de session entre les transactions (à cause du mode MARS), ou la confusion entre NULL et 0 dans les paramètres de requêtes, une mauvaise gestion des messages d'erreur...
    Bonjour,

    Remarque intéressante dans mon cas, je suis tombé sur ce topic en m'arrachant les cheveux avec une connexion ODBC :

    Je configure une connexion ODBC avec sqlconnecte sur un sqlserver 2012 ou 2014
    J'execute une requete par SQlexec, ca marche bien
    J'en ouvre une seconde par SQLexec et la seconde plante en indiquant "[Microsoft][SQL Server Native Client 11.0]Connection is busy with results for another command"
    Une recherche m'a orienté vers l'option MARS qui ne serait pas active par défaut bloquant l'ouverture de plusieurs requêtes dans une même connexion, mais je ne comprends pas comment je peux l'inclure dans mon sqlconnecte initial. Une idée peut être car je suis à court d'idées sur ce point? L'option "fait qu'une requête jointe au lieu de 2 imbriquées" ne m'est pas satisfaisante du fait de contraintes de temps et de développement indépendantes de ma volonté.

    Du coup, pour en revenir au sujet initial, j'ai configuré la connexion en OLEDB mais j'avais des temps de réponses assez long, étonnant car ce devrait être plus rapide, cela venait probablement de la connexion par IP qui impliquait une résolution de nom ou d'IP que le pointage en local a permis de résoudre (fichier hosts windows, etc...). Après, vis-à-vis du client natif PC SOFT, ça me parait largement dispensable sur une logique coût-rapidité mais pratique dans une logique facilité d'emploi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [Débutant] Lien entre SHP et Sql Server + Erreur accès
    Par bob633 dans le forum Installation
    Réponses: 4
    Dernier message: 27/06/2012, 11h03
  2. [WD16] Acces Natif SQL Server
    Par loloxp dans le forum WinDev
    Réponses: 8
    Dernier message: 16/03/2011, 22h23
  3. [WM15] Accès Natif SQL Server Mobile
    Par Lo² dans le forum Windev Mobile
    Réponses: 9
    Dernier message: 01/03/2011, 17h03
  4. [WD15] Erreur accès Natif SQL Server en transaction
    Par L.nico dans le forum WinDev
    Réponses: 2
    Dernier message: 01/10/2010, 11h56
  5. Choix technique DB ACCESS / SQL Server et internet
    Par Yoann_D dans le forum Décisions SGBD
    Réponses: 12
    Dernier message: 29/07/2003, 17h12

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