![]() |
Datenbank: Oracle • Version: XE • Zugriff über: CoreLab Oracle Direct
DbProviderFactory: Provider will nicht geladen werden?
Dank dem Gespräch mit Elvis letzte Woche habe ich eine kleine Applikation versucht auf DbProviderFactory und die System.Data Interface umzustellen.
Soweit, sogut, aber beim Starten der Datenbankverbindung geht mir da noch was in die Hose. Folgender Fehler tritt auf: Zitat:
Code:
Hier der Auszug aus meiner App.Config:
_factory = DbProviderFactories.GetFactory(Properties.Settings.Default.DefaultProviderName); // <-- hier knallts
_DbConnection = _factory.CreateConnection();
XML-Code:
Hab ich was übersehen oder vergessen?
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </sectionGroup> </configSections> <applicationSettings> <ASTA.Properties.Settings> <setting name="DefaultProviderName" serializeAs="String"> <value>CoreLab.Oracle</value> </setting> </ASTA.Properties.Settings> </applicationSettings> <system.data> <DbProviderFactories> <add name="Corelabs Oracle Provider for .NET" invariant="CoreLab.Oracle" description="Corelab Orlace Provider for .NET" type=" CoreLab.Oracle.OraDirectFactory, CoreLab.Oracle, Version=3.50.9.0, Culture=neutral, PublicKeyToken=09af7300eec23701" /> </DbProviderFactories> </system.data> |
Re: DbProviderFactory: Provider will nicht geladen werden?
Hallo Sebastian,
auf den ersten Blick sieht alles korrekt aus. Versuch zunächst Folgendes mit Debugger über eine zusätzliche String-Variable: 1. Wie lautet der String, der über DefaultProviderName gelesen wird? An dieser Stelle muss der Wert stehen, der in der config-Datei im invariant-Attribut steht. 2. Wenn das passt, dann solltest Du einmal - mit Debugger oder temp-DataGrid(View) - mit GetFactoryClasses() alle zur Verfügung stehenden Provider einlesen. In der davon gelieferten DataTable ist das Feld InvariantName von Bedeutung. Der Wert dieses Feldes gehört in die config-Datei als "invariant". Wichtiger Nachtrag Du hast in app.config den Verweis auf section name="system.data" innerhalb der sectionGroup name="applicationSettings" eingetragen. Verändere dies mal:
XML-Code:
Viel Erfolg! Jürgen
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > </sectionGroup> <section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections> [edit=Phoenix](XML-Formatierung war zerlegt... Blöder HTML-Cache ;-) Mfg, Phoenix[/edit] |
Re: DbProviderFactory: Provider will nicht geladen werden?
Sodele... ich und meine Freizeit im Moment *schnauf* ;-)
1.) Zum Nachtrag: Das reine Verschieben des Abschnitts System.data in der App.config hat nichts geholfen. Zitat:
Zitat:
Dank Debugger konnte ich aber herausfinden, das Corelab schon 2x drin war. Also meinen Eintrag aus der App.Config herausgenommen und *wuppdi* - hab ich den Provider bekommen. Nun stimmt nur noch der ConnectionString nicht, aber den bekomm ich denk ich mal schon hin ;-) |
Re: DbProviderFactory: Provider will nicht geladen werden?
Zitat:
Wenn du ihn einfach nur durch Kopieren in dein AppDir benutzen wilst, soltest du dir einen eigenen InvariantName ausdenken. Zum Bleistift deinen eigenen Namespace prefix davorpacken. ;) |
Re: DbProviderFactory: Provider will nicht geladen werden?
Zitat:
das verstehe ich nicht: Zitat:
|
Re: DbProviderFactory: Provider will nicht geladen werden?
Nachtrag: Hat alles geklappt ;-)
Das muss man aber auch erstmal wissen, dass sich Corelab direkt in die Provider einträgt und kein extra Eintrag in der App.Config nötig ist. Naja, beim ausliefern werd ich wohl das Corelab Assembly ins Anwendungsverzeichnis legen und die dennoch eintragen in die App.config - aber das weiss ich ja jetzt ;-) |
Re: DbProviderFactory: Provider will nicht geladen werden?
Zitat:
Zielsystem != Entwicklungssystem. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz