Autor Beitrag
Aadelbert
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

XP, WIN 2000, NT 4.0
D6 Enterprise
BeitragVerfasst: Di 17.04.07 21:52 
Hallo,

Ich lasse mir den Inhalt einer Datenbank in einem DB-Grid anzeigen. In der DB-Tabelle steht die IDLager, die Warenbezeichnung, die Bestandsmenge etc.

Nun möchte ich im selben DB-Grid per SQL-Befehl die Waren und die Warenmenge einer bestimmten IDLager anzeigen lassen.

Die IDLager wird schon beim Programmstart aus einer Tabelle ausgewählt und auch an anderer Stelle im Programm verwendet.

So lasse ich mir den gesamten Warenbestand eines bestimmten Lagers anzeigen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
ADODataSet1.Close;
SQLString:= 'select * from Lager where IDLager=' + IntToStr(Lager)+' order by IDWare';
ADODataset1.CommandText:=SQLString;
ADODataSet1.Active:=true;


So lasse ich mir eine bestimmte Ware aller Lager anzeigen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
ADODataSet1.Close;
SQLString := 'select * from Lager where Ware= ' + '"' + Warenname + '"'+ 'ORDER BY IDWare DESC';
ADODataset1.CommandText := SQLString;
ADODataSet1.Active:=true;


Wie muss ich den SQLString ändern, damit mir von einer bestimmten IDLager eine bestimmte Ware und dessen Bestandsmenge angezeigt wird.

Mit SQL tue ich mich etwas SCHWER deshalb bitte ich Euch um ein bisschen Hilfe.

Danke

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Di 17.04.07 22:19 
Vorab : auf Anhieb sehe ich keinen Fehler. Zielsetzung ist jedoch so vorzugehen : Close -> SelectSQL zusammenbauen -> Open. Bei Dir sind da noch ein paar """". Welche DB willst du damit ansprechen ?

_________________
Gruß
Hansa
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1340
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 17.04.07 23:16 
Wie wäre es mit:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  
ADODataSet1.Close;
SQLString := 
   'select * from Lager where IDLager= ' + IntToStr(Lager)+
   ' and Ware= "' + Warenname + '" ORDER BY IDWare DESC';
ADODataset1.CommandText := SQLString;
ADODataSet1.Active:=true;

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mi 18.04.07 00:05 
Mir fällt noch was auf : CommandText gibts im TDataset nicht. Welche Komponenten werden benutzt ? Eventuell BDE ? :shock:

_________________
Gruß
Hansa
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 18.04.07 06:42 
Zitat:
CommandText gibts im TDataset nicht. Welche Komponenten werden benutzt ? Eventuell BDE ?
Eher ADO

_________________
Markus Kinzler.
Aadelbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

XP, WIN 2000, NT 4.0
D6 Enterprise
BeitragVerfasst: Mi 18.04.07 12:43 
Hallo,

ich danke Euch!

Es handelt sich um eine Access-DB.

ADODataset1.CommandText – GIBT ES!

Die Gänsefüsschen und Hochkomma sind auch richtig.

Für andere die es wissen wollen so funktioniert es – wenigstens bei mir:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
ADODataSet1.Close;
SQLString := 'select * from Lager where IDLager= ' + IntToStr(Lager)+ ' and Ware= '"' + Warenname + '"' ORDER BY IDWare DESC';
ADODataset1.CommandText := SQLString;
ADODataSet1.Active:=true;


Nochmals Danke für die Unterstützung

Moderiert von user profile iconUGrohne: Delphi-Tags hinzugefügt.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 18.04.07 13:34 
Verwende Parameter.

_________________
Markus Kinzler.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mi 18.04.07 21:27 
1. Tip :

user profile iconmkinzler hat folgendes geschrieben:
Verwende Parameter.


Sollte man sich grundsätzlich angewöhnen.

2. Tip (der IMHO wichtigste) :

gutes Admin-Tool verwenden, um nicht SQL-Fehler im eigenen Programm suchen zu müssen.

3. Tip :

Access elminieren. Es gibt besseres.

_________________
Gruß
Hansa