Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP) (https://www.delphipraxis.net/20081-einige-fragen-zu-delphi-8-datenbankanb-bdp-versus-odp.html)

MaBuSE 13. Apr 2004 13:13


Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Stichwörter:
BDP = Borland Data Provider
ODP = Oracle Data Provider for .net


Hallo,

ich habe hier eine Delphi 8 Architekt installiert.

Folgende Fragen sind aufgekommen:

Datenbankanbindung (BDP versus ODP)

Ich möchte eine Verbindung zu einem Oracle SQL Server aufbauen,
aber kein BDE, ADO oder so verwenden.
Von Oracle gibt es eine Schnittstelle Namens "Oracle Data Provider for .net".
Das bekomme ich auch in Delphi 8 installiert. (.net Komponenten)

Ich habe nur ein kleines Problem in der Benutzung.

Die "Borland Data Provider" Komponenten werden wie folgt verwendet:
  • 1. BdpConnection wird ein ConnectionString zugewiesen
    2. BdpCommand wird eine Connection zugewiesen (z.B. BdpConnection1)
    3. BdpCommand wird ein CommandText zugewiesen (z.B. select * from table1)
    4. BdpDataAdapter wird ein SelectCommand zugewiesen (z.B. BdpCommand1)
    5. BdpDataAdapter kann nun ein DataSet zugewiesen werden (z.B. DataSet1)
    6. BdpDataAdapter kann nun mit Active := true aktiviert werden.
    7. Nun kann z.B. ein DataGrid mit DataSet1 oder der automatisch generierten DataTable1 verbunden werden
-> Es werden Daten angezeigt.

Bei den "Oracle Data Provider for .net" Komponenten sollte das eigentlich genauso gehen
  • 1. OracleConnection wird ein ConnectionString zugewiesen
    2. OracleCommand wird eine Connection zugewiesen (z.B. OracleConnection1)
    3. OracleCommand wird ein CommandText zugewiesen (z.B. select * from table1)
    4. OracleDataAdapter wird ein SelectCommand zugewiesen (z.B. OracleCommand1)
    5. OralceDataAdapter kann nun leider kein DataSet zugewiesen werden (Diese Eigenschaft existiert nicht)
    6. OracleDataAdapter kann nun nicht mit Active := true aktiviert werden. (Diese Eigenschaft existiert nicht)
    7. Nun kann z.B. ein DataGrid mit DataSet1 verbunden werden (Die automatisch generierten DataTable1 gibt es auch nicht)
Man kann zur Laufzeit folgenden Code ausführen, dann werden Daten angezeigt:
Delphi-Quellcode:
Self.OracleDataAdapter1.Fill(Self.Dataset1)
Aber leider nicht in der IDE

In dem von Delphi generierten Quellcode (procedure TWinForm.InitializeComponent) kann ich diese Zeile auch einfügen.
Beim Wechsel von Code auf Design ist nun auch tatsächlich eine Datenverknüpfung hergestellt. Nach einiger Zeit entfernt Delphi meine Zeile aus seinem Code.

Meine Frage: Wie mache ich das denn nun am geschicktesten?

Ich will auf keinen Fall so was wie die BDE oder ADO dazwischen haben.
Die .net Komponenten von Oracle sollten ja auch unterstützt werden.

Frage 2: Kann ich das nur in WinForms verwenden?
(In VCL Modus bekomme ich die Oracle Komponenten nicht installiert)

Für eine Antwort bedanke ich mich schon mal im Voraus.

MaBuSE


ps: Hier ein Bild

[edit=fkerber]Bild im Anhang. Mfg, fkerber[/edit]

kiar 13. Apr 2004 14:02

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
hatten wir erst,

es werden nur WinForms unterstützt.

zu frage eins warte auf unseren Oracleman :mrgreen:

der wird schon auftauchen :dancer:

raik

Bernhard Geyer 13. Apr 2004 14:08

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
1, ADO.NET ist darauf ausgelegt keine Connected-Dataset zur verfügung zu stellen. Sprich Du mußt vieles im Code machen. Der BDP bietet u.a. einen "Live"-Dataset auch in der IDE an (als feature gegenüber dem "nackten" ADO.NET). Deshalb sind auch nicht die von Delphi/TDataset bekannten properties wie Active nicht verfügbar.

2, Codezeilen in den Initialize-Abschnitt zu kopieren ist nicht anzuraden. Ist der Winforms-Ersatz für die Delphi-DFM-Dateien. Und dort kann man auch nicht alles was man will unterbringen.

2, Du kannst ADO.NET auch in VCL-Forms verwenden. In eingeschränkten Maße auch mittels Komponenten. Jedoch wird es keine Anbindung an das bekannte TDataset/TDatasource geben, da hier die Basisfunktionalität zu unterschiedlich ist. Aber wieso willst Du das machen? Du hast unter Winforms doch auch genug DB-Sensitive Komponenten?

MaBuSE 13. Apr 2004 14:37

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von kiar
hatten wir erst,
es werden nur WinForms unterstützt.

Es gibt ja unter "Datei - Neu... - Weitere..." WinForm Controls Package einen Wizard zum Importieren von .net Komponenten. Einen Button und Checkbox hab ich mal ausprobiert. Die Oracle Komponenten haben leider nicht funktioniert.

Zitat:

Zitat von Bernhard Geyer
2, Du kannst ADO.NET auch in VCL-Forms verwenden. In eingeschränkten Maße auch mittels Komponenten. Jedoch wird es keine Anbindung an das bekannte TDataset/TDatasource geben, da hier die Basisfunktionalität zu unterschiedlich ist. Aber wieso willst Du das machen? Du hast unter Winforms doch auch genug DB-Sensitive Komponenten?

Wir haben einige Softwareprojekte die unter Delphi 5 und 7 entwickelt wurden.
Es wurde die Direct Oracle Access (DOA) Komponenten verwendet. Also keine BDE!
Das soll auch so bleiben. Ich prüfe nun in wie weit Delphi 8 für uns das richtige ist. (Portierung und Neuentwicklungen)

Ich probiere nur mal alles aus, und teste ein wenig bevor wir unser 1. Projekt portieren.

Leider ist Delphi 8 noch zu neu als das man vernünftige Aussagen zu Performance oder "Alltagsprobleme" im Netz findet.

Bernhard Geyer 13. Apr 2004 15:44

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Es wurde die Direct Oracle Access (DOA) Komponenten verwendet.
Wenn es DOA für D8 in einer VCL.NET-Version gibt (was ja der Fall sein soll) so ist die Umstellung auf den Oracle.NET-Provider unnötig (jedenfalls wenn man den "einfachen" umstieg auf VCL.NET durchführt.

MaBuSE 13. Apr 2004 16:29

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Bernhard Geyer
Wenn es DOA für D8 in einer VCL.NET-Version gibt (was ja der Fall sein soll) so ist die Umstellung auf den Oracle.NET-Provider unnötig (jedenfalls wenn man den "einfachen" umstieg auf VCL.NET durchführt.

Richtig, aber mein Arbeitgeber will nun mal direkt auf ODP aufsetzen. ODP funktioniert ja auch (s.o.) Ich bin ja nur am prüfen, ob ODP in Delphi auch so einfach wie BDP eingesetzt werden kann, oder ob man "unnötig" viel von Hand programmieren muss. (Gilt für Neuentwicklungen unter WinForm)

Wir hatten sehr viele Probleme mit der BDE und es besteht die Angst, das mit der BDP auch noch viele Probleme kommen. Wir wollen nach Möglichkeit direkt auf ODP aufsetzen, aber die Vorteile von Delphi nicht verlieren.

Das bin ich am prüfen.

Meine Delphi Erfahrungen beschränken sich auf die Versionen 1 bis 6 und leider kenne ich .net (noch) nicht.

Ich arbeite mich gerade in .net ein.

Deshalb taucht von mir evtl noch die eine oder andere dotnet DAU Frage auf :coder:

Danke für die Antwort

Bernhard Geyer 13. Apr 2004 17:34

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Richtig, aber mein Arbeitgeber will nun mal direkt auf ODP aufsetzen.
Welche Vorteile verspricht er sich davon? Vermutlich ODP (wie auch der Net8-Treiber) installiert werden. D.h. die Verteilung wird nicht einfacher.

Zitat:

ob man "unnötig" viel von Hand programmieren muss.
Wäre für mich kein Nachteil. Unsere Anwendung ist eh für mehre DB's ausgelegt und da kommt man mit einfach verbindbare Komponenten an die Grenze.

Selbst habe ich bisher nur 2-3 Toolanwendungen erfolgreich portiert. An DB-Anwendung habe ich mich (aus mangel an TDataset-Native-Treiber) noch nicht gewagt. Die BDE ist bei uns schon einige Jahre nur noch 2te Wahl (nur noch Zugriff auf ODBC) und wird dieses Jahre komplett entsorgt.

Robert_G 13. Apr 2004 17:46

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Hi MaBuSe :hi:

ODPs gibt es 2!
Einmal den aktuellen von Oracle und den von Microsoft.
Um in in die Tool Palette zu kriegen:
  • Im Menu auf Components\Inst. .Net-Components klicken
  • Sortiere nach Namespace
  • Unter Oracle.DataAccess.Client findest du den von Oracle (den findest du bei www.oracle.com, einfach nach ODP suchen und installieren ;) )
  • Unter System.Data.OracleClient liegt der von M$
  • einfach das Häkchen setzen und *fump* sind sie in der Tool palette

Ich persönlich bervorzuge den "richtigen" ODP (der von Oracle).
Der von M$ ist eigentlich nur ein Prerelease des jetzigen.

Nachtrag: Man kann mit dem DataAdapter auch BDP-like per "generate DataSet" ein DataSet erzeugen, dieses bekommt autom. den richtigen Ref Cursor zugewiesen.

MaBuSE 14. Apr 2004 08:02

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Nachtrag: Man kann mit dem DataAdapter auch BDP-like per "generate DataSet" ein DataSet erzeugen, dieses bekommt autom. den richtigen Ref Cursor zugewiesen.

Danke für die Installationsanleitung, aber wie Du sicher schon gelesen hast, habe ich die Komponenten problemlos installieren können.

Meine Frage war wie kann ich in der IDE dem DataAdapter ein Dataset zuweisen.
Delphi-Quellcode:
Self.OracleDataAdapter1.Fill(Self.Dataset1)
funktioniert ja leider nur zur Laufzeit. Aber vieleicht habe ich ja ein paar Properties übersehen :?

Wie geht das denn mit dem "generate DataSet" ?

MaBuSE 14. Apr 2004 08:44

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Richtig, aber mein Arbeitgeber will nun mal direkt auf ODP aufsetzen.
Welche Vorteile verspricht er sich davon? Vermutlich ODP (wie auch der Net8-Treiber) installiert werden. D.h. die Verteilung wird nicht einfacher.

Die Oracle Treiber müssen eh auf jedem Rechner vorhanden sein. Also ist der ODP auch auf jedem Rechner installiert.
Wir haben mit der BDE sehr schlechte Erfahrungen gemacht. (Performance, Unverträglichkeiten, Versionskonflikte, fehlende Unterstützung der "neuen" Oracle Versionen bzw. Oracle Besonderheiten, ...). Es besteht die Befürchtung, das BDP ähnliche Alltagsprobleme bringen wird. ODP wird eh mit den Treibern mitinstalliert und ist für .net gedacht. Warum also nicht direkt ODP benutzen, statt eine zusätzliche Schicht von Borland dazwischenklemmen. Im Moment verwenden wir DOA Komponenten die einen direkten Zugriff auf Oracle ermöglichen und als TDataSet den gleichen Komfort bieten wie BDE.
(Link: Direct Oracle Access Komponenten)

Zitat:

Zitat von Bernhard Geyer
Zitat:

ob man "unnötig" viel von Hand programmieren muss.
Wäre für mich kein Nachteil. Unsere Anwendung ist eh für mehre DB's ausgelegt und da kommt man mit einfach verbindbare Komponenten an die Grenze.

Es gibt Fälle, da möchte man in der IDE schon zur Entwicklungszeit visuell eine Datenbankverbindung mit dem Komponenten machen und sehen wie das mit Daten aussieht. (Das kann ja Delphi auch)
Es kann ja nicht die Lösung sein in Edit Felder die Daten mit
Delphi-Quellcode:
Edit1.Text := Datenbank.Tabelle.Wert
zuzuweisen. (Dieses Beispiel war bewust übertrieben)

Zitat:

Zitat von Bernhard Geyer
[Selbst habe ich bisher nur 2-3 Toolanwendungen erfolgreich portiert. An DB-Anwendung habe ich mich (aus mangel an TDataset-Native-Treiber) noch nicht gewagt. Die BDE ist bei uns schon einige Jahre nur noch 2te Wahl (nur noch Zugriff auf ODBC) und wird dieses Jahre komplett entsorgt.

Wir haben noch gar nichts portiert. Wir sind noch am prüfen ob der Umstieg auf Delphi 8 lohnt, oder ob man (wenn man eh alles neu machen muss) gleich zu den MS Produkten wechselt (C#) Nächste Woche werde ich wahrscheinlich mal eine kleinere Datenbankanwendung portieren.

Robert_G 14. Apr 2004 12:48

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sorry für die unnötige Inst.-Anleitung. Ich hatte wohl nicht weit genug gelesen. :oops:
Zu dem "generate DataSet":
Wenn ich den DataAdapter des ODP von Oracle oder M$ nehme sehe ich diese Funktion... :gruebel: (siehe Anhang)

MaBuSE 14. Apr 2004 13:29

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Wenn ich den DataAdapter des ODP von Oracle oder M$ nehme sehe ich diese Funktion... :gruebel: (siehe Anhang)

Vielen Dank erst mal. Bei mir ist das leider nicht zu sehen. Was muss ich den anschalten, damit ich auch in den Genuss von so was komme :?:

Das Feld in dem Gererate DataSet steht ist bei mir nicht zu sehen.
Über "Konfigurationen" ist direkt das weiße Feld des Objektinspektors zu sehen.

Ein Bild kann ich leider nicht hochladen (wegen Firewall)

Ich versuche das mal nachzumalen :roll:
Code:

Bei mir:

!                     !
!                     !
!                     !
+---------------------+
! Konfigurationen    !
!                     !
+---------------------+----------------------------------------------
! 1 Objekt ausgewählt !
+---------------------+----------------------------------------------

Bei Dir:
!                     !
+---------------------+
! Gererate DataSet   !
!                     !
+---------------------+
! Konfigurationen    !
!                     !
+---------------------+----------------------------------------------
! 1 Objekt ausgewählt !
+---------------------+----------------------------------------------

MaBuSE 14. Apr 2004 13:44

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Aha, ich bin dem Geheimnis auf der Spur.

Meine ODP Komponenten (Oracle9i Release 2 Data Provider for .NET 9.2.0.4.0) haben alle das Symbol mit dem Zahnrad.

Die ODP Komponenten von Robert_G haben andere Symbole!

Die SqlDataProvider Komponente (Data Components) hat auch einen Link "Datenmenge erzeugen" (Gererate DataSet).

Ich brauche also ODP Komponenten die das unterstützen.
(Oder doch eine genaue Installationsanleitung wie ich die Komponenten "richtig" installiere :oops:)

Wo bekomme ich die ODN Komponenten her die das können?

Robert_G 14. Apr 2004 13:46

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Hast du dir den aktuellen ODP von Oracle gesaugt?
Der alte (=der normal OCI Client) hatte das nicht. Außerdem läuft das Ganze auch erst seit der jetzigen Version wie geschmiert.
Die alten Version haben tierisch gebockt, wenn es um den Zugriff auf Collections in Objekten ging. :(

Dafür bockt der neue ODP beim Zugriff auf eine 8i DB. Es ging sogar soweit, dass er sich bei mir nicht in die 9.2 DB, sondern in die 8i installiert hat -> Ich durfte erstmal zu Fuss alles wieder hinfriemeln, bis ich auf die "alte" wieder zugreifen konnte.

Tja damit endet wohl meine Kompatibilität mit dem guten alten 8.17 :roll:

MaBuSE 14. Apr 2004 13:51

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Hast du dir den aktuellen ODP von Oracle gesaugt?

Ja. Meine ODP Komponenten sind (Oracle9i Release 2 Data Provider for .NET 9.2.0.4.0)

Vieleicht habe ich ja doch bei der Installation in Delphi einen Fehler gemacht :?:

Robert_G 14. Apr 2004 13:59

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Sorry, ich glaube jetzt habe ich Mist gebaut :oops:
Ich sitze gerade zu Hause an meinem Rechner und war an meiner "privat"-Windows Installation angemeldet.
Hier läuft noch eine 8.17, für die ich eine private Lizenz habe. Deshalb habe ich hier den ODP 9.2 deinstalliert.
Delphi hat die Komponenten aber noch in der Liste, aber wenn ich sie auf's Form ziehe, nimmt er einfach die M$ Dinger.
So jetzt bin ich in der anderen win-Inst. angemeldet:
Anscheinend hat der aktuelle ODP das "generate DataSet" nicht mehr. Ich habe es eh nie benutzt (wie wahrscheinlich jeder Ora-Entwickler auch ;) ).
Deshalb habe ich gar nicht bemerkt, dass es die nicht mehr gibt.
Man konnte auf dem früheren ScreenShot sehen, dass es der M$-ODP war - am Icon.

Fazit: Du kannst den M$ ODP nehmen (mit generate DS) oder es richtig machen ( ;) ) ohne.

MaBuSE 14. Apr 2004 14:21

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Fazit: Du kannst den M$ ODP nehmen (mit generate DS) oder es richtig machen ( ;) ) ohne.

Na super :cry:

Entweder ich entwickele mit einer alten Komponente visuell.

Oder ich nehme den neuen Treiber und programmiere alles von Hand.

Nennt sich Delphi nicht visuelle Entwicklungsumgebung? :gruebel:

Aber danke, meine Fragen sind von Dir beantwortet worden. :cheers:

Robert_G 14. Apr 2004 14:33

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Ich würde nicht so schnell aufgeben ;)
Allround Automations arbeitet seit Monaten fieberhaft an einer .Net Version von DOA.
Das Ergebnis ist dann entweder ein Meilenstein (wie es DOA unter Win32 auch war) oder das Aus für DOA.

MaBuSE 15. Apr 2004 09:03

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Allround Automations arbeitet seit Monaten fieberhaft an einer .Net Version von DOA.

Ich lese auch ständig das Forum von

Leider ist das die letzte Antwort auf die Frage nach einem Erscheinungstermin der Komponenten von Allround Automations:

Zitat:

Zitat von Marco Kalter von Allround Automations am 29.03.2004
There is no concrete information yet. Unfortunately this port requires considerably more effort than Delphi 3 -> 4 -> 5 -> 6 -> 7.


MaBuSE 20. Apr 2004 14:23

Re: Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
 
Zitat:

Zitat von Robert_G
Allround Automations arbeitet seit Monaten fieberhaft an einer .Net Version von DOA.

Die sollten mal für einen Moment die DOA liegen lassen, und Ihren Web Server noch mal ins Netz bringen. :mrgreen:

Code:
HTTP error 504
504 No response from server

Error connecting to 'www.allroundautomations.nl'.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz