Rechercher : dans
Par :

OLEDB ou ODBC???

Dernière réponse le 23 aoû 2008 à 16:35:36 stef, le 19 mai 2005 à 17:58:53 
 Signaler ce message aux modérateurs

Bonjour,

Dans tous mes progs, lorsque j'utilise ODBC, tout fonctionne correctement; lorsque j'utilise OLEDB, la connnection est super lente (30 sec pour une requete!!!!)

J'ai fait des test connection en VB sur SQL server ou connection via composant Delphi, c'est le même problème.

Savez-vous comment fonctionne OLEDB? Se connecte-t-il à un composant? une dll? un service windows??? Quelle différence avec ODBC?

Merci,

Stef

Meilleures réponses pour « OLEDB ou ODBC??? » dans :
ODBC (Open DataBase Connectivity) VoirQu'appelle-t-on ODBC? ODBC signifie Open DataBase Connectivity. Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché. Le gestionnaire ODBC est...
Création d'un DSN avec ODBC VoirQu'est-ce qu'un DSN ? ODBC permet de relier un client à une base de données en déclarant une source de données (correspondant généralement à une base de données) dans le gestionnaire ODBC (communément appelé administrateur de source de données...
ODBC VoirQu'appelle-t-on ODBC? ODBC signifie Open DataBase Connectivity. Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché. Le gestionnaire ODBC est...

1

sam3000, le 19 mai 2005 à 18:07:24

Salut
moi je te conseille d'utiliser ADO (ODBC n'est pas un remplaçant mais une methode d'accès au "driver" base de donnees)
L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.

Répondre à sam3000

2

sebsauvage, le 19 mai 2005 à 18:17:36

Je confirme ce que dit sam3000.
ADO et ADO.Net sont beaucoup plus rapides qu'ODBC.

Par contre, c'est bizarre que OLEDB soit plus lent qu'ODBC.
Le composant Delphi natif MS SQL Server devrait également être beaucoup plus rapide qu'ODBC.
Ce n'est pas logique du tout.


Quel mode d'authentification utilises-tu ?
NTLM (intégré Windows) ou bien le traditionnel login/mot de passe ?

Les 30 secondes, c'est pour le temps de connexion ou bien le temps d'exécution de la requête ?

Répondre à sebsauvage

3

stef, le 20 mai 2005 à 08:02:04

Les 30 secondes, c'est le temps d'execution d'une requete avec OLEDB; c'est completement inexploitable!!!
(Avec ODBC, c'est 0,2 sec; ce qui est deja pas mal...)

POur le mode d'identification; c'est login/mdp

J'ai tout essayé :
j'ai éxécuté le code sur plusieurs machines et dans plusieurs languages; c'est toujours pareil....

c'est peut-etre un probleme réseau ???(le prog n'est pas sur la même machine que SQL Server)

stef

Répondre à stef

4

sebsauvage, le 20 mai 2005 à 09:24:20
  • +1

c'est peut-etre un probleme réseau ???

Non il n'y a pas de raisons.
J'avais travaillé sur un programme en Delphi utilisant le composant natif MS SQL Server, et les temps de réponse étaient excellents (sur un serveur SQL distant).

Je ne pense pas que ça soit un problème réseau, sinon tu aurais aussi des problème avec ODBC.

Vérifie que le client et le serveur utilisent bien a même version (7/2000 ?).

Applique aussi les services packs SQL Server sur le serveur et sur le client.
(on peutl les télécharger sur le site de Microsoft)

Répondre à sebsauvage

5

stef, le 20 mai 2005 à 09:56:04

Tu verifie comment les versions???

Répondre à stef

6

sebsauvage, le 20 mai 2005 à 10:05:04

Lance le "Client Network Utility", onglets "DB-Library options" et "Network libraries".

Il est très important que le serveur et le client aient les mêmes versions.
J'ai eu des comportant vraiment très bizarres quand les versions étaient différentes.

Applique bien tous les derniers service pack de SQL server sur les deux.

Répondre à sebsauvage

7

stef, le 20 mai 2005 à 10:33:32

Le pack SQL est le dernier.
J'ai exécuté le client et le server sur la meme machine-> a priori pas de problème de version...
j'ai trouvé Client Network Utility", onglets "DB-Library options" sur le client : version 8.00.194; mais pour le serveur, ou est la version ????

D'autre part, si je me connecte à mon server en utilisant l'IP 127.0.0.1, cela fonctionne normalement, mais pas lorsque je mets la véritable IP.

J'ai peut-etre trouvé un indice :
si je fais un ping IP, tout est normal; si je fais ping -a nom_de_machine, il repond au bout de plusieurs secondes...


J'ai pas mal de prog utilisant cette connexion; il faut a tout prix que je trouve le problème.


Merci !!!

Répondre à stef

8

sebsauvage, le 20 mai 2005 à 11:05:18

Oui donc c'est plutôt un problème réseau.

Sans doute un problème de résolution de noms.
Qu'est-ce que vous utilisez pour la résolution des noms ?
workgroup, serveur de domaine, ActiveDirectory, DNS, autre ?

A mon avis c'est de là que vient le problème.


Workaround rapide:
mettre adresse IP + nom du serveur dans le fichier hosts du client.

Répondre à sebsauvage

9

stef, le 20 mai 2005 à 11:20:18

Effectivement avec l'IP+Nom du server dans le fichier hosts, tout est OK!


Il y a deux Serveurs de domaines (dont un seul est maitre) avec DNS + Active Directory + DHCP.
Cependant, le serveur n'a pas l'air saturé (ni au niveau du processeur/RAM ni au niveau de l'acces réseau)

Répondre à stef

10

Vincent de Paul, le 30 mai 2008 à 12:59:06

Comment importer des données Oraclle vers une application windev 12

Répondre à Vincent de Paul

11

emma, le 3 jun 2008 à 11:28:42

Bonjour a tous j'ai peut etre le meme pb
je travail avec windev 11 et je doit ecrire dans une bd saari compta
pendat toute la periode de test sur la machine l'execution des requetes se fesaient plutot bien maintenant que je veux tester sur le serveur sur le quel le fichier de bd se trouve les requetes sont devenues tres tres lentes

Répondre à emma

12

 sabrinayasmine15, le 23 aoû 2008 à 16:35:36

Bonjour tous le monde

svp quelq'un pourrai t'il me donner la syntaxe exacte pour me connecter a la bdd sql server 2005 à partir de vs2008
c#

Merci d'avance

Répondre à sabrinayasmine15