Autor Beitrag
Barret
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: Do 23.09.04 09:29 
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?

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
Jörg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71

Win 2000, Win XP
Delphi 1, 3, 5, 7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 156
Erhaltene Danke: 1

Win XP
D7 Ent
BeitragVerfasst: 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.

_________________
Wir könnten ja, wenn wir wollten aber wir wollen ja nicht.
It´s not a bug, it´s a feature.
Jörg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71

Win 2000, Win XP
Delphi 1, 3, 5, 7
BeitragVerfasst: Do 23.09.04 10:14 
Für die größte Auftragsnummer:

ausblenden Quelltext
1:
2:
3:
4:
select
  max(auftragnr) 
from 
  auftragstabelle


Jörg.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71

Win 2000, Win XP
Delphi 1, 3, 5, 7
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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: