Share via


Procédure : énumérer des sources de données OLE DB (OLE DB)

Pour répertorier les sources de données visibles pour l'énumérateur SQLOLEDB, le consommateur appelle la méthode ISourcesRowset::GetSourcesRowset. Cette méthode retourne un ensemble de lignes dotées d'informations sur les sources de données actuellement visibles.

Selon la bibliothèque réseau utilisée, le système recherche les sources de données dans le domaine approprié. Pour les canaux nommés, il s'agit du domaine auquel le client est connecté. Pour AppleTalk, il s'agit de la zone par défaut. Pour SPX/IPX, il s'agit de la liste des installations SQL Server disponibles dans la base de données Bindery. Pour BANYAN VINES, il s'agit des installations SQL Server disponibles dans le réseau local. Les sockets Multiprotocol et TCP/IP ne sont pas pris en charge.

Lorsque le serveur est désactivé ou activé, la mise à jour des informations dans ces domaines peut prendre un moment.

Un exemple de code complet est disponible dans le fichier ListDataSourcesWithEnumerator.cpp. Vous pouvez télécharger une archive contenant l'exemple à partir de la page des Téléchargements SQL Server sur MSDN.

Cet exemple a été développé à l'aide de Microsoft Visual C++ 2005.

Remarque relative à la sécuritéRemarque relative à la sécurité

Si possible, utilisez l'authentification Windows. Si l'authentification Windows n'est pas disponible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez rendre les informations d'identification persistantes, chiffrez-les avec l'API de chiffrement Win32.

Pour énumérer des sources de données OLE DB

  1. Appelez ISourceRowset::GetSourcesRowset pour extraire l'ensemble de lignes source.

  2. Appelez GetColumnInfo::IColumnInfo pour rechercher la description de l'ensemble de lignes des énumérateurs.

  3. Créez les structures de liaison à partir des informations sur les colonnes.

  4. Appelez IAccessor::CreateAccessor pour créer l'accesseur de l'ensemble de lignes.

  5. Appelez IRowset::GetNextRows pour extraire les lignes.

  6. Appelez IRowset::GetData pour extraire les données de la copie de l'ensemble de lignes de la ligne et traiter ces données.