AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken In zwei DB suchen, vergleichen, änder?
Thema durchsuchen
Ansicht
Themen-Optionen

In zwei DB suchen, vergleichen, änder?

Ein Thema von Alterauge · begonnen am 17. Sep 2012 · letzter Beitrag vom 24. Sep 2012
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#11

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

  Alt 18. Sep 2012, 06:17
@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!).
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#12

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

  Alt 18. Sep 2012, 07:21
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#13

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

  Alt 18. Sep 2012, 07:57
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

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

  Alt 18. Sep 2012, 10:39
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#15

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

  Alt 23. Sep 2012, 16:40
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!

Geändert von Alterauge (23. Sep 2012 um 16:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#16

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

  Alt 23. Sep 2012, 16:56
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Alterauge

Registriert seit: 4. Mär 2011
306 Beiträge
 
Delphi 2010 Professional
 
#17

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

  Alt 23. Sep 2012, 17:02
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!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#18

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

  Alt 23. Sep 2012, 17:17
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.
Miniaturansicht angehängter Grafiken
einsatz-db.jpg  
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

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

  Alt 24. Sep 2012, 09:48
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#20

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

  Alt 24. Sep 2012, 10:17
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:27 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