![]() |
Datenbank: MySQL • Version: 5.5 • Zugriff über: MyConnection
In zwei DB suchen, vergleichen, änder?
Hallo,
Habe zwei DB ( db1 und db2) ! Die Datenbank 1 besteht aus: DBEdit1 // Bezeichnung Status DBEdit2 // Bezeichnung Einsatznummer Datenbank 2 besteht aus: DBEdit.3 // Bezeichnung Einsatznummer DBEdit4 // Bezeichnung Zustand Einsatz Mein erster Schritt (Vorraussetzung in DB1) gibt es einen Eintrag mit: DBEdit1.Text ='4' dann Schritt 2 Vergleich aus DB1 und DB2 DBEdit2.Text = DBEdit3.Text dann Schritt 3 DBEDit4.Text ='In Bearbeitung' dann DBEdit4.Text='Am Einsatort' So das ganze immer wieder als if Anweisung ! Aber wie mache ich das mit dem suchen in der DB Mit Locate ? Zum Beispiel beim vergleichen: Schritt 2? |
AW: In zwei DB suchen, vergleichen, änder?
Sind das wirklich 2 DBs oder eher 2 Tabellen? Zumindest den letzteren Fall würde ich eher mit einem SQL-Statement behandeln, als das clientseitig lösen zu wollen.
|
AW: In zwei DB suchen, vergleichen, änder?
Es sind wirklich zwei DB!
Ok, werde mich dann mal mit Query und SQL Befehlen beschäftigen! Habe noch nie mit einer Query gearbeitet! |
AW: In zwei DB suchen, vergleichen, änder?
Zitat:
|
AW: In zwei DB suchen, vergleichen, änder?
Bei mysql kann man doch DB übergreifend abfragen, falls es 2 DB in der gleichen Instance sind...
|
AW: In zwei DB suchen, vergleichen, änder?
Das mit den zwei Datenbanken kann ich eigentlich nicht glauben, auf der anderen Seite bei den Fragen, die du in letzter Zeit gestellt hast, ist das durchaus möglich.
Wäre es da nicht an der Zeit sich einmal grundlegende Gedanken über die Datenhaltung und die damit verbundenen Funktionen (Einsatzprotokoll?) zu machen? Gruß K-H |
AW: In zwei DB suchen, vergleichen, änder?
Hallo,
frage mal ganz vorsichtig! Wenn ich mich mit der Datenbank A verbinde und DBEdit1 zuweise ! Und jetzt verbinde ich mich mit Datenbank B und weise DBEdit2 zu! Mache jetzt eine Abfrage: If (dbedit1.text) = (dbedit2.text) then Beginn So mache ich doch eine Abfrage aus zwei unterschiedlichen Datenbanken? Ist der Text aus DB1 gleich Text aus DB2 dann mache ............ Oder ist das so nicht Richtig? |
AW: In zwei DB suchen, vergleichen, änder?
Vorsichtige Gegenfrage: weshalb sind das 2 verschiedene DBs? Willst Du konvertieren, oder welcher Sinn steckt dahinter?
|
AW: In zwei DB suchen, vergleichen, änder?
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. |
AW: In zwei DB suchen, vergleichen, änder?
Erstelle dir am besten passende Tabellen in deiner DB und gieße dort die Daten aus der beigestellten hinein. Ab dann lassen sich derartige Krämpfe mit ein wenig SQL in 2-4 Zeilen in Gefallen auflösen. Wenn die gestellte DB "lebt" (also immer wieder neue Daten hinein gehen) muss man eben regelmäßig die eigene nachführen.
So auf die Art, Daten in Controls vergleichen, ist das jedenfalls die gräßlichste Möglichkeit die man so nehmen könnte. |
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 ![]() 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:
Wie man an dem Beispiel sieht, wird direkt auf die Daten zugegriffen (ohne DBEdit!).
// 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; |
AW: In zwei DB suchen, vergleichen, änder?
Sofern DB-übergreifende SQL-Statements wirklich möglich sind, könnte es so klappen(ungetestet):
SQL-Code:
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.
UPDATE
DB2.Tabelle SET Zustand = 'Am Einsatort' WHERE Einsatznummer IN ( SELECT Einsatznummer FROM DB1.Tabelle WHERE Status = 4 ) AND Zustand = 'In Bearbeitung' |
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.
|
AW: In zwei DB suchen, vergleichen, änder?
Zitat:
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 |
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! |
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.
|
AW: In zwei DB suchen, vergleichen, änder?
Zitat:
Werde dann jetzt mal ein wenig lesen! Grundlagen relationaler Datenbanken! |
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.
|
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 |
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.
|
AW: In zwei DB suchen, vergleichen, änder?
Zitat:
Gruß K-H |
AW: In zwei DB suchen, vergleichen, änder?
Hoffentlich passiert nix grösseres, denn bei dem Entwurf kann nur ein Fahrzeug pro Einsatz rausrücken :mrgreen:
|
AW: In zwei DB suchen, vergleichen, änder?
Da sich der TE nicht mehr meldet, wäre das ja auch wurscht :mrgreen:
|
AW: In zwei DB suchen, vergleichen, änder?
Dieses Problem sollte für den TE Dank seines (bald) umfassenden Wissens über RDBMS kein Problem darstellen.
|
AW: In zwei DB suchen, vergleichen, änder?
Zitat:
Wenn er sich die Papierversion zum Vorbild genommen hat, da wurden Großeinsätze über den Einsatzort und zeitliche Nähe abgebildet. gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr. |
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