Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   In zwei DB suchen, vergleichen, änder? (https://www.delphipraxis.net/170435-zwei-db-suchen-vergleichen-aender.html)

sx2008 18. Sep 2012 06:17

AW: In zwei DB suchen, vergleichen, änder?
 
@Alterauge: ich glaube du bräuchtest erst einmal einen Grundkurs darüber, was eine relationale Datenbank überhaupt ist.
Am Besten kaufst du dir dazu ein Buch oder du kuckst mal auf Datenbanken-Tutorials .

Eine Datenbank besteht hauptsächlich (ich vereinfache hier etwas) aus Tabellen.
Tabellen bestehen aus Feldern und Datensätzen.
Ein TDBEdit hat damit erst einmal nichts zu tun.

Wenn man Daten aus einer Datenbank lesen möchte oder bestehende Daten ändern oder neue Daten einfügen möchte, dann hat das mit Felder und Datensätzen zu tun.
Als Delphi-Programmierer muss man dazu die Klasse TDataset kennen und benützen.
TDataset ist die Basisklasse von TQuery und TTable sowie allen anderen Varianten wie z.B. TAdoTable, TAdoQuery, TIbTable,....
Delphi-Quellcode:
// Beispiel: alle Datensätze einer Tabelle auslesen
Query1.SQL.Text := 'SELECT * FROM Fahrzeug';
Query1.Open; // Datenmenge öffnen
while not Query1.Eof do // solange noch Datensätze da sind
begin
  stringlist.Add(Query1.FieldByName('Name').AsString +
    '  -   ' +
    Query1.FieldByName('Status').AsString);
  Query1.Next; // nächsten Datensatz
end;
Wie man an dem Beispiel sieht, wird direkt auf die Daten zugegriffen (ohne DBEdit!).

DeddyH 18. Sep 2012 07:21

AW: In zwei DB suchen, vergleichen, änder?
 
Sofern DB-übergreifende SQL-Statements wirklich möglich sind, könnte es so klappen(ungetestet):
SQL-Code:
UPDATE
  DB2.Tabelle
SET
  Zustand = 'Am Einsatort'
WHERE
  Einsatznummer IN (
    SELECT
      Einsatznummer
    FROM
      DB1.Tabelle
    WHERE
      Status = 4
  )
AND
  Zustand = 'In Bearbeitung'
Wobei ich eher eine eigene Tabelle "Zustand" einrichten würde, die zumindest aus einem AutoInc-Wert und einem Varchar besteht. Dann würde nicht der Zustand als String eingetragen, sondern nur der zugehörige PK aus dieser Zustandstabelle.

Daniel 18. Sep 2012 07:57

AW: In zwei DB suchen, vergleichen, änder?
 
Alterauge, Dir fehlen grundlegende Kenntnisse, wie DB-Anwendungen funktionieren. Das ist aber nicht schlimm, ging uns allen einst so und es lässt sich abstellen. Es gibt viele Tutorials, zum Beispiel bei DelphiTreff, aber die muss man auch durcharbeiten wollen. Du wirst dabei aber schnell feststellen, dass es gar nicht so schwer ist. Sieh Dir auch die Delphi-Demos FishFacts und BioLife an. Vorher hat das alles hier wenig Sinn, weil Du bestenfalls zu einer Lösung kommen wirst, die zufällig funktioniert, Du aber nicht in der Lage sein wirst, zu beurteilen, warum das so ist.

p80286 18. Sep 2012 10:39

AW: In zwei DB suchen, vergleichen, änder?
 
Zitat:

Zitat von Alterauge (Beitrag 1183354)
Eine Datenbank wird vorgegeben, und Daten zur Verfügung gestellt.
Die zweite Datenbank, habe ich selber angelegt!

Jetzt brauche ich, eine art Verknüfung DB1 zu DB2 !

Kopiere mir die Einsatznummer aus DB1 und füge sie in DB2 ein.
Es sind natürlich ausgesuchte Datensätze, die ich jetzt durch die Einsatznummer verknüpfen möchte.

Wofür soll das gut sein?
wenn du bestimmte Datensätze z.B. Einsatzdauer>10 min suchst, dann kannst Du das mit der Orginal DB auch erledigen. Die paar Datensätze zusätzlich werden keine moderne DB in die Knie zwingen.
Wenn Du hingegen eine Neue DB erstellen willst, die eine andere Struktur als das Original hat, dann solltest Du mit Hilfe von SQL eine Export/Import Päcksen schnüren, ein paar mal testen und dann die Daten übertragen und dann ganz schnell die alte DB vergessen.

Es gibt auch die Möglichkeit die Tabellen von zwei DBs in einer DB zusammen zu fassen.
Dadurch ist die Verarbeitung der Daten wesentlich vereinfacht.

Gruß
K-H

Alterauge 23. Sep 2012 16:40

AW: In zwei DB suchen, vergleichen, änder?
 
Hallo,
nun habe ich zwei Tabellen in einer Datenbank! Habe dieses erstmal geändert.
__________________________________________________ __________________________________________________ _________________________________
Die erste Tabelle (Fahrzeuge) besteht aus: DBGrid1/MyTable1
- Fahrzeug // Dieser Wert ändert sich nicht! (Ausnahme neues Fahrzeug usw.)
- Status // Dieser Wert ändert sich immer! (z.B. Fahrzeug befindet sich an der Einsatzstelle / Status 4)
- Einsatznummer // Dieser Wert ändert sich immer! ( z.B. Einsatznummer wird aus Tabelle zwei (Einsätze) hinzugefügt bzw. kopiert!)
__________________________________________________ __________________________________________________ _________________________________
Die zweite Tabelle (Einsätze) besteht aus: DBGrid2/MyTable2
- Einsatzmeldung // z.B Einsatzalarm Feuerwehr Wohnungsbrand I
- Uhrzeit // Zeitstempel
- Einsatz-Status // z.B. In Bearbeitung
- Einsatznummer // hier steht die Einsatznummer, die dann auch in Tabelle (Fahrzeug)kopiert wird!
- usw.
__________________________________________________ __________________________________________________ __________________________________
Jetzt wieder zur Frage:

Habe jetzt aus Tabelle (Fahrzeuge) bestimmte Fahrzeuge ausgesucht und die Einsatznummer aus Tabelle (Einsätze) kopiert.
So sehe ich dann, welches Fahrzeug zum welchem Einsatz gehört! (durch die Einsatznummer)

Jetzt ändert das Fahrzeug seinen Status von 2 nach 3 (Einsatz übernommen) in Tabelle (Fahrzeuge).
Jetzt soll sich der Einsatz-Status aus Tabelle (Einsätze ändern) von (In Bearbeitung) nach (Fahrzeug ausgerückt).

Wie kann ich dieses umsetzen?

In Textform:

wenn das Fahrzeug XX die Einsatznummer 1234 hat,und einem Status Wert von 3! dann:
suche in Tabelle (Einsätze)! nach:

einem Einsatz mit der Einsatznummer 1234 und dem Einsatz-Status: In Bearbeitung und ändere:
diesen Einsatz-Status in : (Fahrzeug ausgerückt) !


oder so: ist die Einsatznummer aus Tabelle 1 und Tabelle 2 gleich und der Wert Status 3 dann:
also die Schnittstelle sollte die Einsatznummer sein!
Fertig!

DeddyH 23. Sep 2012 16:56

AW: In zwei DB suchen, vergleichen, änder?
 
Mach Dich doch erst einmal mit den Grundlagen relationaler Datenbanken vertraut. Sofern ich die Anforderung korrekt verstanden habe, kommst Du mit 2 Tabellen lange nicht aus.

Alterauge 23. Sep 2012 17:02

AW: In zwei DB suchen, vergleichen, änder?
 
Zitat:

Zitat von DeddyH (Beitrag 1184077)
Mach Dich doch erst einmal mit den Grundlagen relationaler Datenbanken vertraut. Sofern ich die Anforderung korrekt verstanden habe, kommst Du mit 2 Tabellen lange nicht aus.

Ok DeddyH!
Werde dann jetzt mal ein wenig lesen!
Grundlagen relationaler Datenbanken!

DeddyH 23. Sep 2012 17:17

AW: In zwei DB suchen, vergleichen, änder?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal in IBExpert ein Diagramm erstellt, wie das aussehen könnte. Falls damit noch etwas nicht stimmen sollte, kann das daran liegen, dass ich die genaue Aufgabenstellung nicht kenne.

p80286 24. Sep 2012 09:48

AW: In zwei DB suchen, vergleichen, änder?
 
Ich denke, da sind die wesentlichen Daten erfasst.
Zusätzlich könnte man noch Daten des Einsatzfahrzeug, und das eingesezte Personal erfassen.

Gruß
K-H

DeddyH 24. Sep 2012 10:17

AW: In zwei DB suchen, vergleichen, änder?
 
Natürlich, ein Fahrzeugstatus (einsatzbereit, in Reparatur etc.) wäre auch noch denkbar, mir ging es aber zunächst um die grundlegende Struktur. So kann man einen Einsatz auch minutiös nachvollziehen und weiß später, wann welcher Status erreicht oder zumindest eingetragen wurde.


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

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