Question

Je suis confus sur la façon de se connecter à Oracle via ODBC.

Je l'ai créé une source de données ODBC nommé " oracle " dans mon panneau de configuration> Outils d'administration, et a utilisé le pilote "Microsoft ODBC pour Oracle".

Dans mon app.config, j'ai les chaînes de connexion

<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionString"
      connectionString="Dsn=oracle;uid=ma;pwd=ma" providerName="System.Data.Odbc" />
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionStringSqlServer"
      connectionString="Dsn=sqlserver;uid=sli;pwd=slislisli" providerName="System.Data.Odbc" />
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionStringOracle"
      connectionString="Dsn=oracle;uid=ma;pwd=ma" providerName="System.Data.Odbc" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

Dans mon code, j'utiliser la maConnectionString chaîne de connexion (la première un). Je suis confondre le pilote est utilisé sous:

  1. Microsoft ODBC pour Oracle
  2. System.Data.Odbc
  3. Sont-ils deux les mêmes?
  4. Ou sont les classes System.Data.Odbc à travers laquelle je suis accès au pilote? Je veux dire, est « Microsoft ODBC pour Oracle » une implémentation d'accès ODBC pour Oracle, créé par Microsoft?
  5. Quelque chose d'autre?

besoin pour avoir défini une source de données ODBC à se connecter avec espace de noms System.Data.Odbc à une base de données (selon Oracle, SQL Server, MySQL)?

Merci!

Était-ce utile?

La solution

Dans la configuration que vous avez décrite vous utiliserez les 'pilotes'. Techniquement, System.Data.Odbc n'est pas un pilote, est un fournisseur .

Pour comprendre ce qui se passe, vous devez séparer le côté géré (.Net) du côté natif (ODBC). Le pilote ODBC Microsoft pour Oracle est un pilote pour ODBC. Il permet à toute application capable d'ODBC pour se connecter à Oracle. ODBC est une natif technologie. Sur la main otehr .Net Framwork utilise gérés fournisseur de données pour son accès aux données. Un tel fournisseur est le fournisseur System.Data.Odbc qui permet aux applications .NET de se connecter à une source de données ODBC. Ainsi, lorsque votre application gérée se connecte à maConenctionString il utilise le fournisseur System.Data.Odbc pour se connecter à la source ODBC nommée « oracle » et le gestionnaire ODBC chargera le pilote ODBC Microsoft pour Oracle pour se connecter à l'arrière réelle.

Maintenant que dit il est recommandé d'utiliser les fournisseurs autochtones chaque fois que possible . Ainsi, au lieu de se connecter via le fournisseur ODBC à une source de données ODBC, est beaucoup mieux si vous utilisez directement le fournisseur natif respectif comme le . net Provider Managed Oracle (pour les cadres plus anciens) ou le plus récent System.Data.OracleClient .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top