AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriff auf IBM DB2 Datenbank mit ADO
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf IBM DB2 Datenbank mit ADO

Ein Thema von skullcrusher · begonnen am 8. Aug 2006 · letzter Beitrag vom 10. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
skullcrusher

Registriert seit: 22. Okt 2003
Ort: Sulzheim
56 Beiträge
 
Delphi 8 Architect
 
#1

Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 18:07
Datenbank: DB2 • Version: ? • Zugriff über: ADO
Hallo !

Ich bin gerade dabei einen Zugriff auf eine DB2 Datenbank über das Internet zu realisieren.
Das ganze erfolgt unter D7 Prof mit ADO.
Es ist dabei auch notwendig einen Select über die gesamte Datenbank zu machen.
Leider enthält die Datenbank über eine Million Datensätze was auf einmal geladen
ein zeitliches Problem darstellt.
Zuerst dachte ich, man könnte da ähnlich dem "limit" Befehl bei MYSQL die geladenen
Datensätze beschränken und diese dann nacheinander abfragen. Aber etwas ähnliches
gibt es bei DB2 nicht.
Hat jemand Erfahrung mit DB2 und einen Tipp wie ich die Daten in kleineren Paketen
anfordern kann ??

Bin für jeden Tipp dankbar.

Tschau,

Stephan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 19:46
Hallo Stephan,

bei großen Datenmengen stellt sich immer die Frage der Verwendung. Was soll der Benutzer mit einer Million Datensätzen anfangen? Normalerweise präsentiert man nur eine überschaubare Datenmenge. Wenn du ein wenig Hintergrundinformationen gibst, dann gibt es bestimmt auch ein paar zielführende Ratschläge.

Grundsätzlich musst du bei größeren DataSets darauf achten, dass der DB-Cursor nicht auf deinem Client verwaltet wird, sonst werden wirklich alle Tupel zuerst dorthin geschickt.

Grüße vom marabu
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 20:04
Zitat:
Es ist dabei auch notwendig einen Select über die gesamte Datenbank zu machen.
Leider enthält die Datenbank über eine Million Datensätze was auf einmal geladen
ein zeitliches Problem darstellt.
Das ist in den seltensten Fällen notwendig.
Eine solche datenmeneg wäre auch in einem lokalen Netzwerk ein Problem. Du solltset überprüfen, wie du die benötigte Datenmenge einschränkst.
Markus Kinzler
  Mit Zitat antworten Zitat
skullcrusher

Registriert seit: 22. Okt 2003
Ort: Sulzheim
56 Beiträge
 
Delphi 8 Architect
 
#4

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 20:32
Okay,

sorry das ganze etwas konkreter:
Also das Programm führt einen Abgleich zwischen einer DB2 Datenbank
und einer MYSQL Datenbank druch. Quasi so eine Art Sicherheitsbackup.
Es überprüft ob der Datensatz der DB2 Datenbank in der MYSQL Datenbank vorhanden
ist und ob er verändert wurde. Entweder gibts dann einen Update der Datenbank
oder der gesamte Datensatz wird bei Nichtvorhandensein in die MYSQL Datenbank
eingefügt.
Das ganze ist sehr flexibel gehalten, das heisst der Anwender bestimmt welche Datenbank
mit MYSQL abgeglichen wird.
Wir haben reell jetzt schon einen Anwender mit über 600000 Datensätzen und ein Bekannter
meinte er hätte in dem Benutzerkreis eben auch noch grössere Datenbanken gesehen.
Damit ich dann wirklich das Vorhandensein eines DB2 Datensatzes in der MYSQL Datenbank
ermitteln kann macht das Programm einen select * auf DB2 und geht dann Datensatz
für Datensatz durch.
Oder gibt es noch einen anderen Weg zum Abgleich zwischen den beiden Datenbanken
auf den ich, warum auch immer, noch nicht gekommen bin ?

Bis dann,

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 20:32
Zitat von skullcrusher:
Ich bin gerade dabei einen Zugriff auf eine DB2 Datenbank über das Internet zu realisieren.
Das ganze erfolgt unter D7 Prof mit ADO.
Und wieso nicht native z.B. mitSQL-Direct oder ZEOS?

Zitat von skullcrusher:
Es ist dabei auch notwendig einen Select über die gesamte Datenbank zu machen.
Leider enthält die Datenbank über eine Million Datensätze was auf einmal geladen
ein zeitliches Problem darstellt.
Falls es nicht für ein Grid benötigt wird (da sind 1. Mio. Datensätze fehl am Platz) so mußt du versuchen einen Forward-Only-Curser zu verwenden, welcher Blockweise die Daten zum Client schaufelt und nachdem sie vom Client mittel MoveNext "abgearbeitet" wurden gleich wieder verworfen werden.

Zitat von skullcrusher:
Zuerst dachte ich, man könnte da ähnlich dem "limit" Befehl bei MYSQL die geladenen
Datensätze beschränken und diese dann nacheinander abfragen. Aber etwas ähnliches
gibt es bei DB2 nicht.
Das ihr alle nicht googeln könnte. Innerhalb von 2 Minuten gefunden: Subselect
Suchbegriff war Bei Google suchenibm db2 select limit, 4 Treffer.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
skullcrusher

Registriert seit: 22. Okt 2003
Ort: Sulzheim
56 Beiträge
 
Delphi 8 Architect
 
#6

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 20:34
Ach ja, ich habe vergessen zu erwähnen:
Diese Datenbank mit 1 Million Datensätzen ist eine Testdatenbank
um einfach mal den Worst Case durchzuspielen.
Ich will ja dann beim Anwender keine Überraschungen erleben.....
  Mit Zitat antworten Zitat
skullcrusher

Registriert seit: 22. Okt 2003
Ort: Sulzheim
56 Beiträge
 
Delphi 8 Architect
 
#7

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 21:09
Zitat:
Und wieso nicht native z.B. mitSQL-Direct oder ZEOS?
Der Kunde will das nicht anders. Des Menschen Wille ist sein Himmelreich

Zitat:
Falls es nicht für ein Grid benötigt wird (da sind 1. Mio. Datensätze fehl am Platz) so mußt du versuchen einen Forward-Only-Curser zu verwenden, welcher Blockweise die Daten zum Client schaufelt und nachdem sie vom Client mittel MoveNext "abgearbeitet" wurden gleich wieder verworfen werden.
Hm, ja das wäre zu probieren. Ich muss zugeben bei den Cursorn bei ich kein Crack.
(Nicht lachen). Aber ich werde mich mal damit auseinandersetzen....
Ich habe auch schon versucht im SQL Befehl mit "Declare Cursor" ( habe ich von der IBM
Page ) einen Cursor zu definieren. Hat aber nicht geklappt, warscheinlich habe ich da
was falsch verstanden....


Zitat:
Das ihr alle nicht googeln könnte. Innerhalb von 2 Minuten gefunden: Subselect
Suchbegriff war Bei Google suchenibm db2 select limit, 4 Treffer.
Hm, der subselect ? Was bringt mir der ? Den kann ich doch nicht über mehrere verschiedene
Datenbanksysteme verwenden oder ?

Die Suche über google mit den Stichwörtern von oben hat mir nur Hinweise auf
"fetch first" oder die random() Funktion gebracht. Ich will aber weder immer nur
die ersten xxx Datensätze von DB2 noch einen zufälligen Datensatz.

Gut, aber wie gesagt: Die Cursorsache werde ich mir mal zu Gemüte führen.....

Danke,

Stephan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 8. Aug 2006, 21:14
Zitat:
Der Kunde will das nicht anders. Des Menschen Wille ist sein Himmelreich Wink
Komisch weder MySQL noch DB2 sind eigentlich Datenbanken für die sich ADO anbieten würde.
Wenn es nur um den Abgleich geht, wäre u.U. ja nicht der ganze Datensatz an den Client zu übertragen, vielleicht würde da die Kombination ID und Hash reichen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 9. Aug 2006, 20:58
Zitat von skullcrusher:
Zitat:
Und wieso nicht native z.B. mitSQL-Direct oder ZEOS?
Der Kunde will das nicht anders. Des Menschen Wille ist sein Himmelreich
Das sollte dem Kunden egal sein. Für IBM DB2 muss er noch zusätzliche Treiber installieren die er bei nativen Zugriff vermutlich (aufgrund anderer Programme) schon installiert hat.

Stell mal die W-Frage zu ADO.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
skullcrusher

Registriert seit: 22. Okt 2003
Ort: Sulzheim
56 Beiträge
 
Delphi 8 Architect
 
#10

Re: Zugriff auf IBM DB2 Datenbank mit ADO

  Alt 9. Aug 2006, 22:53
Zitat:
Stell mal die W-Frage zu ADO.
Hm,ja hast ja Recht. Aber: Ändert das etwas an dem Problem mit den
enorm vielen Datensätzen ? Ich meine die abzufragende Datenbank bleibt ja gleich.
Nur die Art des Zugriffs ändert sich. Habe ich mit Zeos bei DB2 andere Möglichkeiten ?
( Mal davon abgesehen das es warscheinlich generell schneller als ADO ist ... )
  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 12:45 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