2009-10-15 12 views

Répondre

3

tout d'abord laissez-moi corriger votre malentendu: Si vous utilisez SQL Server NOT chaque IDataReader sera en mesure de lire les données de MS SQL Server

Dans l'environnement .NET (que je suppose que votre question s'applique à) il existe deux classes concrètes implémentant IDataReader qui peut accéder à SQL Server. L'un est SQLDataReader et l'autre est OleDbDataReader. OleDbDataReader repose en fait sur le OleDb protocol, qui est fondamentalement un protocole de communication RDBMS. Si vous utilisez IDataReader dans votre code, vous pourrez (plus ou moins) vous assurer que vous pouvez remplacer le lecteur de données concret derrière lui (par exemple vous donner la possibilité de changer de fournisseur de base de données.

Pour acessing SQL Server, le SQLDataReader spécialisé est plus rapide de 115% selon cette source, car il utilise les protocoles de serveur SQL natif (appelé tubes/tcp/ip). Il prend également en charge des fonctionnalités SQL Server spéciales telles que MARS.

+0

Merci, Johannes. Pourquoi SQLDataReader devrait-il être plus rapide? – GernBlandston

+0

J'ai mis à jour mon message, s'il vous plaît voir ci-dessus. N'hésitez pas à le marquer comme réponse :-) –

0

.HasRows propriété est le seul que je peux penser. Ce n'est pas vraiment nécessaire cependant.