Entwickler-Ecke
Datenbanken - Query Prob (MySql)
Barret - Do 23.09.04 09:29
Titel: Query Prob (MySql)
Hi!
Ich hab da ein Problem mit meiner Query.
Nach bestimmten Abfragen trägt mein Programm einige Datensätze aus meiner Datenbank(MySql) in ein StringGrid ein.
Damit das Prog mit den Datensätzen arbeiten kann trägt es immer nur die selektirte Zeile des StringGrids und damit die dazugehörigen Datensätze in die Query ein. Da ich nach einer bestimmten Nummer suche und die auf der Basis der gefundennen eine neue Berechnen lasse muss ich aber alle Datensätze des Datenbank in der Query haben. Sonst entsteht Datenresonans.
Kann mir da jemand helfen?
Jörg - Do 23.09.04 09:37
1. Warum ein StringGrid, warum keine datensensitive Komponente (dbGrid)?
2. Was genau ist das Problem? Bekommst Du die Daten aus dem StringGrid nicht ausgelesen oder weißt Du nicht, wie Du die MySQL-DB abfragen kannst?
Jörg.
PS: Es heißt "Datenredundanz" :wink:
Barret - Do 23.09.04 10:08
Ich hab mich für ein StringGrid entschieden da ich bestimmte Felder im nachhinein noch editiren möchte.
In dem prog ist automatisch immer eine Zeile des StringGrids selektirt. Auserdem wird die selektirte Zeile in die Query geschriben damit das Programm nicht soviele Daten zu bearbeiten hat. Jetzt ist mein Problem das er ja nur die eine Zeile in der Query hat und ich brauche für ein Ereigniss alle Datensätze der Datenbank. Um die größte Auftragsnummer zu ermitteln und diese dan um eins erhöhen.
Der angemeldete User kann nicht alle Datensatze sehen. Daher schreibt das Programm immer nur einen Datensatz in die Query damit der User diesen editiren kann.
Jetzt muss ich eine Anweisung schreiben damit er alle Datensätze der Datenbank benutzt.
Jörg - Do 23.09.04 10:14
Für die größte Auftragsnummer:
Quelltext
1: 2: 3: 4:
| select max(auftragnr) from auftragstabelle |
Jörg.
jasocul - Do 23.09.04 10:29
Denn lass mal auftragnr ein String ohne führende Nullen sein. :wink:
Bei numerischen Werten geht das ohne Probleme.
Jörg - Do 23.09.04 10:35
jasocul hat folgendes geschrieben: |
Denn lass mal auftragnr ein String ohne führende Nullen sein. :wink:
Bei numerischen Werten geht das ohne Probleme. |
Ist ja wohl nicht Dein Ernst? Wer macht denn sowas? Entweder integer oder string mit fester Länge, also führende Nullen oder wenigestens führende Leerzeichen.
Wenn allerdings im string nur numerische Werte stehen (was allerdings wieder komplett dagegen spricht, den Feldtyp string zu nehmen), dann gibt's auch diese Lösung:
Quelltext
1: 2: 3: 4:
| select max(cast(auftragsnr as integer)) from auftragstabelle |
Sollte der string keinen gültigen integer enthalten, gibt's allerdings eine Fehlermeldung. Da sieht man mal wieder, wie wichtig es ist, sich VORHER Gedanken über die DB-Struktur zu machen.
Jörg.
jasocul - Do 23.09.04 11:32
Jörg hat folgendes geschrieben: |
Ist ja wohl nicht Dein Ernst? Wer macht denn sowas? Entweder integer oder string mit fester Länge, also führende Nullen oder wenigestens führende Leerzeichen.
|
Wenn du wüsstest, was ich schon alles an Müll gesehen habe ....
Ich habe mich einige Jahre sehr intensiv mit Schnittstellen, Datenaufbereitung und Datentransfer beschäftig. Da gibts Dinge, die glaubt einem niemand. Da stehen einem echt die Haare zu Berge. :hair:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!