Entwickler-Ecke
Datenbanken - Select mit SQL
Hänsel - Di 06.09.16 08:19
Titel: Select mit SQL
Hallo, ich habe heute schon wieder ein ungelöstes Problem,
mit der Filterung G_Typ=WW funktioniert die Abfrage.
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.
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 Christian S.: Delphi-Tags hinzugefügt
FinnO - 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 - 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 - Di 06.09.16 08:47
Mein Vorschlag:
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 - Di 06.09.16 09:19
Besten Dank. Es hat so funktioniert.
Hänsel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 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!