AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Prism Einige Fragen zu Delphi 8 (Datenbankanb. BDP versus ODP)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von MaBuSE · begonnen am 13. Apr 2004 · letzter Beitrag vom 20. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

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

  Alt 13. Apr 2004, 14:13
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:
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]
Miniaturansicht angehängter Grafiken
image002_720.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

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

  Alt 13. Apr 2004, 15:02
hatten wir erst,

es werden nur WinForms unterstützt.

zu frage eins warte auf unseren Oracleman

der wird schon auftauchen

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#3

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

  Alt 13. Apr 2004, 15:08
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?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

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

  Alt 13. Apr 2004, 15:37
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 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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#5

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

  Alt 13. Apr 2004, 16:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

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

  Alt 13. Apr 2004, 17:29
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

Danke für die Antwort
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 13. Apr 2004, 18:34
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.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

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

  Alt 13. Apr 2004, 18:46
Hi MaBuSe

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.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

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

  Alt 14. Apr 2004, 09:02
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.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" ?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

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

  Alt 14. Apr 2004, 09:44
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 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 Edit1.Text := Datenbank.Tabelle.Wert zuzuweisen. (Dieses Beispiel war bewust übertrieben)

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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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