Autor Beitrag
Hänsel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: Di 06.09.16 08:19 
Hallo, ich habe heute schon wieder ein ungelöstes Problem,

mit der Filterung G_Typ=WW funktioniert die Abfrage.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  if Button2.Caption='Nur WW' then
     Begin
     DataModule2.ADOQuery_Mess.Close;
     DataModule2.ADOQuery_Mess.SQL.Text:='Select * From MGV1 Where (ID ='+such+') and (I_Export ='''+('X')+''') and (G_Typ='''+('WW')+''')order by we_Nr,we_lauf';
     DataModule2.ADOQuery_Mess.Open;
     DataModule2.ADOQuery_Mess.First;
     DBGrid2.Update;
     End;





versuche ich es mit G_Typ=WW und G_Typ KW kommt kein Ergebnis zurück.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  if Button2.Caption='Nur KW+WW' then
     Begin
     DataModule2.ADOQuery_Mess.Close;
     DataModule2.ADOQuery_Mess.SQL.Text:='Select * From MGV1 Where (ID ='+such+') and (I_Export ='''+('X')+''') and (G_Typ='''+('KW')+''') and (G_Typ='''+('WW')+''')order by we_Nr,we_lauf';
     DataModule2.ADOQuery_Mess.Open;
     DataModule2.ADOQuery_Mess.First;
     DBGrid2.Update;
     End;


Ich arbeite mit Delphi X2 und MSSQl. Was habe ich hier falsch gemacht?

Hänsel

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Di 06.09.16 08:33 
Moin,

da ich aus der Bahn schreibe, gehe ich nicht auf die Notwendigkeit Prepared Statements zu verwenden ein, das bleibt einem Folgeposter überlassen.

Ich denke du meinst in deiner zweiten Anfrage or statt and.

Gruß
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: Di 06.09.16 08:38 
dies habe ich auch schon getestet. Bei "and' gibt es keine Datensätze zurück und bei "or" zeigt es alle Sätze mit "WZ" d.h. ohne Filterung.
Gruß
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 305
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Di 06.09.16 08:47 
Mein Vorschlag:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
DataModule2.ADOQuery_Mess.SQL.Text:='Select * From MGV1 Where ID =:ID and I_Export = :I_Export and (G_Typ=:G_Typ1 or G_Typ=:G_Typ2) order by we_Nr,we_lauf';
DataModule2.ADOQuery_Mess.ParamByName('ID').AsInteger := such;
DataModule2.ADOQuery_Mess.ParamByName('I_Export').AsString := 'X';
DataModule2.ADOQuery_Mess.ParamByName('G_Typ1').AsString := 'KW';
DataModule2.ADOQuery_Mess.ParamByName('G_Typ2').AsString := 'WW';
DataModule2.ADOQuery_Mess.Open;
Hänsel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 144



BeitragVerfasst: Di 06.09.16 09:19 
Besten Dank. Es hat so funktioniert.

Hänsel