Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ODBC für Datenbankneuling (https://www.delphipraxis.net/128370-odbc-fuer-datenbankneuling.html)

Sir Rufo 29. Jan 2009 10:53

Re: ODBC für Datenbankneuling
 
Hallo Frederika,
Zitat:

Zitat von Frederika
... für das die EDV-Leute dort eine "ODBC-Schnittstelle zur Verfügung stellen werden". Wir müssen dann nur "die stored procedure aufrufen" und "erhalten passende Ergebnistabellen zurück". Ha, klingt so simpel, aber ich weiß nicht mal, wo ich anfangen soll. Letztlich möchte ich die sogenannte Ergebnistabelle einfach zellenweise auslesen und in eigene Objektstrukturen überführen. ...

unter diesen Voraussetzungen ist die Abfrage der Daten wirklich so simpel.

1. ODBC-Verknüpfung herstellen (in der Windows-Systemsteuerung)
2. TADOStoredProc auf das Form ziehen
3. Die Eigenschaft ConnectionString von TADOStoredProc hat einen Assistenten, der den ConnectionString aufbaut (inklusive Verbindungstest)
4. Eigenschaft ProcedureName mit dem Namen der StoredProcedure füllen
5. Eigenschaftswerte Parameters mit den entsprechenden Abfrage-Parametern füllen
6. Eigenschaft Active auf True setzen

Die Frage nach der Datenbank ist demzufolge hierbei völlig nebensächlich (es wird ja lediglich eine SP aufgerufen).
Will man mehr machen (SELECT, INSERT, etc.) dann wird es Zeit sich die DB näher anzuschauen, aber in diesem Fall?

Die StoredProcedure wird wohl einen ResultSet zurückliefern, der aber wie eine ganz normale DB-Tabelle abzufragen ist.
Dazu findest du hier aber auch genug Beispiele.

cu

Oliver

Frederika 29. Jan 2009 11:43

Re: ODBC für Datenbankneuling
 
Zitat:

Zitat von sx2008
Um welchen Datenbankhersteller (Oracle, IBM DB2, MySQL, SAP DB, ...) handelt es sich überhaupt? Das muss immer die erste Frage sein, wenn man eine fremde Datenbank anbinden soll.

Hm, angeblich (so die Kooperationspartner) macht ODBC das ganze gerade unabhängig von deren Datenbank und ist imer verwendbar, selbst wie die ihr System mal umstellen. Ich habe mit der fremden Datenbank nichts zu tun und muß es erst einmal bei mir zum Laufen bringen.

Sicherlich habt Ihr prinzipiell recht, daß es immer besser ist zu wissen, um welche DB es sich handelt, aber in diesem Falle dient ODBC wohl gerade der Abstraktion. Somit soll man auch bei ganz anderen Arbeitskreisen/Datenquellen später zugreifen können, solange die nur eine ODBC-Schnittstelle und eine gleichlautende stored proc bereitstellen. Ich gehe davon aus, dass die andere Seite das schon mit vielen anderen Gruppen so macht und ich da nicht lange quängeln sollte...

Ich gebe zu, dass das ganze wahrscheinlich auch sehr einfach ist, wenn man erst einmal weiß wie. Soweit bin ich aber noch nicht ganz. :-)

Frederika 29. Jan 2009 11:49

Re: ODBC für Datenbankneuling
 
Zitat:

Zitat von Sir Rufo
unter diesen Voraussetzungen ist die Abfrage der Daten wirklich so simpel.

Das klingt gut! Du bist mein Mann! :-)

Zitat:

2. TADOStoredProc auf das Form ziehen
Sehe ich das richtig, daß ich auch TADOQuery nehmen kann und dann per SQL call oder execute die stored procedure abrufen kann? Ich glaube, so soll ich's machen, jetzt wo ich langsam mehr davon verstehe, was die erzählt haben. :-)

Zitat:

Die Frage nach der Datenbank ist demzufolge hierbei völlig nebensächlich (es wird ja lediglich eine SP aufgerufen).
Ja, danke für die Bestätigung. So soll's gemacht werden.

Zitat:

Will man mehr machen (SELECT, INSERT, etc.) dann wird es Zeit sich die DB näher anzuschauen, aber in diesem Fall?
Richtig, Schreibzugriffe auf eine Tabelle kommen vielleicht im nächsten Schritt, sollen aber auch irgendwie nur über stored procs laufen. Ich denke mal, die wollen sich ihren riesigen Datenbestand nicht von Laien wie mir vermurksen lassen. ;-) Ich kann deren Gedankengang nachvollziehen!

Vielen Dank, Oliver!

Sir Rufo 29. Jan 2009 12:54

Re: ODBC für Datenbankneuling
 
Zitat:

Zitat von Frederika
Sehe ich das richtig, daß ich auch TADOQuery nehmen kann und dann per SQL call oder execute die stored procedure abrufen kann? Ich glaube, so soll ich's machen, jetzt wo ich langsam mehr davon verstehe, was die erzählt haben. :-)

jo, das geht (auch speziell in diesem Fall), da die SP Datensätze zurückliefert und sich daher wie eine Abfrage verhält.

Am Rande sei dazu bemerkt, dass es auch ODBC-Treiber für Datenbanken gibt, die die Verwendung von SP's nicht so wirklich unterstützen (war mal bei MySQL so, ob das immer noch ist - mir egal, da ich da nicht mehr mit ODBC arbeite) und dann bleibt nur noch der Weg mit TADOQuery.

cu

Oliver

Zitat:

Zitat von Frederika
Richtig, Schreibzugriffe auf eine Tabelle kommen vielleicht im nächsten Schritt, sollen aber auch irgendwie nur über stored procs laufen. Ich denke mal, die wollen sich ihren riesigen Datenbestand nicht von Laien wie mir vermurksen lassen. ;-) Ich kann deren Gedankengang nachvollziehen!

Das wohl auch, aber ... wenn die an der DB etwas ändern, dann wird die SP angepasst und dein Programm braucht nicht geändert werden. Die SP ist somit auch als Schnittstelle zwischen DB und ext. Software zu sehen. Sonst müsstetst du bei fast jeder DB-Änderung dein Prog anpassen. Das wäre ja auch doof.

Frederika 29. Jan 2009 14:51

Re: ODBC für Datenbankneuling
 
Zitat:

Zitat von Sir Rufo
Das wohl auch, aber ... wenn die an der DB etwas ändern, dann wird die SP angepasst und dein Programm braucht nicht geändert werden. Die SP ist somit auch als Schnittstelle zwischen DB und ext. Software zu sehen. Sonst müsstetst du bei fast jeder DB-Änderung dein Prog anpassen. Das wäre ja auch doof.

Genau so ist es. Die Kombination ODBC und SP erlaubt beiden Partnern, unabhängig voneinander zu entwickeln und zu verändern. So ist es gemeint und so ist es auch sinnvoll. Jetzt muß ich das nur noch umsetzen... :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 2 von 2     12   

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