Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C# #D und VC#E: Fehlende Provider registrieren? (https://www.delphipraxis.net/78925-d-und-vc-e-fehlende-provider-registrieren.html)

Jürgen Thomas 13. Okt 2006 09:27

Datenbank: Firebird • Version: 2.0 RC4 • Zugriff über: Firebird Net Provider 2.0 RC1

#D und VC#E: Fehlende Provider registrieren?
 
Hallo,

für die Programmentwicklung möchte ich auch die Wizards nutzen (zz. geht es mir um typisierte DataSets und Reports). Dabei stehen aber nicht alle installierten DbProvider zur Verfügung.

machine.config kennt:
XML-Code:
<section name="system.data.odbc" type="..." />
<section name="system.data.oledb" type="..." />
<section name="system.data.oracleclient" type="..." />
<section name="system.data.sqlclient" type="..." />
<section name="firebirdsql.data.firebirdclient" type="..." />
SharpDevelop #D hat wohl keinen Wizard für Datenbanken; aber im Wizard für #Report wird für Datenbanken nur OleDB-Zugriff angeboten.

VS-C# Express bietet im Datenbank-Explorer unter 'Verbindung hinzufügen' nur MS-Access und MS-SQL an.

In beiden IDEs habe ich mich mit GetProviderFactories überzeugt, dass dem System wirklich alle Provider bekannt sind. Die genannten Beschränkungen dürften in irgendwelchen config-Dateien stehen, aber ich finde die richtigen nicht.

Wo und wie kann ich die fehlenden Provider - vor allem den FirebirdClient - registrieren, damit ich innerhalb der IDE und der Wizards mit und für FB arbeiten kann?

Danke für Hinweise! Jürgen

PS. Alles läuft unter NET 2.0.

Bernhard Geyer 13. Okt 2006 10:19

Re: #D und VC#E: Fehlende Provider registrieren?
 
Zitat:

Zitat von Jürgen Thomas
VS-C# Express bietet im Datenbank-Explorer unter 'Verbindung hinzufügen' nur MS-Access und MS-SQL an.

Ob das wirklich ein fehler ist oder volle Absicht von MS. :gruebel:

Jürgen Thomas 13. Okt 2006 11:29

Re: #D und VC#E: Fehlende Provider registrieren?
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Jürgen Thomas
VS-C# Express bietet im Datenbank-Explorer unter 'Verbindung hinzufügen' nur MS-Access und MS-SQL an.

Ob das wirklich ein fehler ist oder volle Absicht von MS. :gruebel:

Das war auch schon mein Gedanke; aber gibt es nicht über eine config-Einstellung einen Umweg?! Jürgen

MagicAndre1981 13. Okt 2006 11:57

Re: #D und VC#E: Fehlende Provider registrieren?
 
Die Express-Edition bieten keine Möglichkeit auf einen neuen DDEX-Provider zuzugreifen, das geht erst mit dem VS2005 >= Standard.

Nur warum nimmst du nicht Elvis seinen Code, den er dir gepostet hat?

Jürgen Thomas 13. Okt 2006 12:06

Re: #D und VC#E: Fehlende Provider registrieren?
 
Zitat:

Zitat von MagicAndre1981
Nur warum nimmst du nicht Elvis seinen Code, den er dir gepostet hat?

Äh??? Ich erinnere mich nicht, dass Elvis mir zu diesem Thema Code genannt hat. Ich habe nochmals in der Suche alle seine Beiträge zu meinen Themen durchgelesen und nichts gefunden. Was meinst Du? Jürgen

MagicAndre1981 13. Okt 2006 12:21

Re: #D und VC#E: Fehlende Provider registrieren?
 
Na das hier: http://www.delphipraxis.net/internal...097&highlight= ;)

Jürgen Thomas 13. Okt 2006 14:31

Re: #D und VC#E: Fehlende Provider registrieren?
 
@MagicAndre1981
Also, ich glaube, jetzt reden wir endgültig aneinander vorbei.

In dem von Dir genannten Beitrag von Elvis ging es darum, dass ich FirebirdClient überhaupt nutzen kann. Das ist aber nicht (mehr) mein Problem: In meinem Beitrag #7 dort habe ich geschrieben:
Zitat:

nach vielem langem Probieren bin ich jetzt endlich fündig geworden und kann auf meine FB-DB zugreifen.
Mein Problem besteht jetzt in Folgendem:
Zitat:

Zitat von Beitrag #1
SharpDevelop #D hat wohl keinen Wizard für Datenbanken; aber im Wizard für #Report wird für Datenbanken nur OleDB-Zugriff angeboten.

VS-C# Express bietet im Datenbank-Explorer unter 'Verbindung hinzufügen' nur MS-Access und MS-SQL an.

Wo und wie kann ich die fehlenden Provider - vor allem den FirebirdClient - registrieren, damit ich innerhalb der IDE und der Wizards mit und für FB arbeiten kann?

Mir fehlt der Zugriff auf FB innerhalb der IDE und der Wizards von VC#E und #D! Jürgen

MagicAndre1981 13. Okt 2006 14:52

Re: #D und VC#E: Fehlende Provider registrieren?
 
Zitat:

Zitat von Jürgen Thomas
Mir fehlt der Zugriff auf FB innerhalb der IDE und der Wizards von VC#E und #D! Jürgen

und das geht nicht!!!! Die Express kann das nicht und #D ist anders aufgebaut und kann also den DDEX-Provider nicht erkennen :roll:

Also nimm den Code aus dem Beispiel und leg los. Warum willst du einen Wizzard haben? Die Dinger nutze ich nie :gruebel:

Jürgen Thomas 13. Okt 2006 16:39

Re: #D und VC#E: Fehlende Provider registrieren?
 
Zitat:

Zitat von MagicAndre1981
Warum willst du einen Wizzard haben? Die Dinger nutze ich nie :gruebel:

Siehe meinen allerersten Satz:
Zitat:

(zz. geht es mir um typisierte DataSets und Reports).
Jürgen

Jürgen Thomas 16. Okt 2006 14:35

Re: #D und VC#E: Fehlende Provider registrieren?
 
Nachtrag

Carlos Guzmán Álvarez hat jetzt über FB-Net-Provider-Support bestätigt, dass VC# Express nicht mehr bietet:
Zitat:

Zitat von Carlos Guzmán Álvarez
Express versions comes with limitewd extensibility support, the only thing that could work is to modify the information of one of the already configured provider in the registry ( for example the MS-Access one ) and configure it to use the Firebird one.

Schade! Jürgen

MagicAndre1981 16. Okt 2006 17:44

Re: #D und VC#E: Fehlende Provider registrieren?
 
hab ich doch gesagt, dass das erst an der Standard geht ;) Wenn du schnell gewesen wärst, hättest du dir eine der 5000 Lizenzen krallen können :zwinker:

Jürgen Thomas 16. Okt 2006 18:30

Re: #D und VC#E: Fehlende Provider registrieren?
 
Nicht so schnell...

Über den FB-Support habe ich jetzt eine Anleitung bekommen, wie man das für VC#E über die Registry ändern kann. Die Beschreibung ist aber etwas länger; also stelle ich das noch zurück. Am Wochenende werde ich mich melden und dann berichten.

Jürgen

MagicAndre1981 16. Okt 2006 18:50

Re: #D und VC#E: Fehlende Provider registrieren?
 
kannst das ja mal hier posten ;)

Jürgen Thomas 21. Okt 2006 12:40

Re: #D und VC#E: Fehlende Provider registrieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

für alle, die es ebenfalls interessiert:

Eintrag heute 13:40 Uhr
Noch klappt es nicht... Ich habe beim User-Support des Firebird-Net-Provider unter sourceforge.net um weitere Erläuterung gebeten.

Vollständig geänderter Eintrag nach 16:50 Uhr


So, mit VC#Express kann ich (im Prinzip) auf Firebird zugreifen.

1. Schritt: Natürlich muss Firebird-Net-Provider installiert werden. Ich habe folgende Version benutzt: FirebirdNETProvider-2.0.1-RC1.exe

2. Schritt: Der FirebirdClient muss im GAC installiert sein (das wird vermutlich immer automatisch durch die Installation erledigt) und in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONF IG\machine.config eingetragen sein (das muss vermutlich manuell erledigt werden). Achtung: Die richtige Version und PublicKeyToken sind ggf. durch Roeder's Reflector zu lesen.
XML-Code:
<configuration>
    <configSections>
        ...
        <section name="firebirdsql.data.firebirdclient"
                type="System.Data.Common.DbProviderConfigurationHandler, System.Data,
                Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        ...
    <configSections>

    <system.data>
        <DbProviderFactories>
      ...
      <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient"
                           description=".Net Framework Data Provider for Firebird"
                           type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory,
                           FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral,
                           PublicKeyToken=3750abcc3150b00c" />
      ...
        </DbProviderFactories>
   </system.data>
   ....
</configuration>
3. Schritt: Die Erweiterung DDEX Provider für die Integration in Visual Studio ist zu installieren. Carlos Guzmán Álvarez hat mir die Download-Adresse genannt. (Mir war bisher entgangen, dass diese Erweiterung benötigt wird.) Achtung: Die reg-Files, die dazu mitgeliefert werden und in Readme.Txt erwähnt werden, sind nicht die Lösung; diese reg-Files werden lieber übergangen.

4. Schritt: Die Win-Registry ist gemäß folgender Anleitung zu sichern:
Zitat:

Zitat von Robert Simpson
To make Firebird work on Express, do this:
  • [1] Run REGEDIT
    [2] Expand one of the following (depending on the Express Edition installed):
    HKLM\Software\Microsoft\VCSExpress\8.0
    HKLM\Software\Microsoft\VBExpress\8.0
    [3] Find and expand the DataProviders key
    [4] Find the key under DataProviders named "{7F041D59-D76A-44ed-9AA2-FBF6B0548B80}" and rename it (change one of the numbers in the GUID is the best bet)
    [5] Going back to the root 8.0 section, find and expand the DataSources key
    [6] Rename the subkey "{466CE797-67A4-4495-B75C-A3FD282E7FC3}" to something else (again just change one of the numbers).

5. Schritt: Speichere die in der Anlage beigefügte Datei als .reg File und bearbeite sie wie folgt nach Robert's Anleitung:
Zitat:

Zitat von Robert Simpson
  • [7] Copy this data to a .reg file: /* übernehmen aus der Anlage */
    [8] Find and replace any occurance above of "VisualStudio" in the registry keys and replace it with either VBExpress or VCSExpress. /* ich habe es schon an VSCExpress angepasst */
    [9] Replace the %PATH% above with the full path to the Firebird designer DLL.
    [10] Save and run this .reg file.
This will install the packageless version of the Firebird provider using the JET Guid's for Express.

Wenn danach VC# Express gestartet wird und eine Datenbankverbindung hinzugefügt werden soll, wird neben dem MSSQL-Server neu Firebird Data Source angeboten. Unangenehm ist 'nur' noch, dass der ConnectionString komplett direkt einzutragen ist; aber jedenfalls die Testverbindung wird als erfolgreich angezeigt.

Ich habe dabei ein weiteres Problem; aber das gehört in eine neue Diskussion.

Ich hoffe, dass jemand von dieser Erfahrung profitieren kann. Grüße Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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