AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit SQL Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit SQL Abfrage

Ein Thema von waschlap · begonnen am 3. Nov 2005 · letzter Beitrag vom 3. Nov 2005
Antwort Antwort
waschlap
(Gast)

n/a Beiträge
 
#1

Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:33
Datenbank: Interbase • Zugriff über: SQL - Abfrage
Hi Leute,

ich wie immer mal ein Problem:

SQL.Text:='Select idteil,benennung,benennung2,klassifi From TTEIL where (IDTEIL = ' +QuotedStr(TeilenrE.Text) + ') OR (BENENNUNG = ' +QuotedStr(Bng1E.Text) + ') OR (BENENNUNG2 = ' +QuotedStr(Bng2E.Text) + ') AND ((KLASSIFI like ''R%'') OR (KLASSIFI like ''S%'')) '; Ich weiß einige werden mich gleich erschießen warum ich es nicht Params gemacht habe jedoch ist meine Frage wieso steigt die abfrgae aus wenn ich "(BENENNUNG2 = ' +QuotedStr(Bng2E.Text)"hinzufüge?? Ohne dies funktioniert sie einwand frei.

Um Hilfe wird dringends gebeten.
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#2

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:37
was heist aussteigen

bekommst du eine exception bei der ausführung oder dauerts ewig
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:38
Zitat von waschlap:
jedoch ist meine Frage wieso steigt die abfrgae aus wenn ich "(BENENNUNG2 = ' +QuotedStr(Bng2E.Text)"hinzufüge??
Was heißt das genau. Bekommst Du eine Fehlermeldung oder eine leere Antwortmenge? Falls letzteres, solltest Du Dir mal die Logik der WHERE-Klausel genauer anschauen. Eventuell mußt du ja noch mehr klammern.
  Mit Zitat antworten Zitat
waschlap
(Gast)

n/a Beiträge
 
#4

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:45
Aussteigen heißt das er mir alle Datensätze anzeigt obwohl ich nur nach nen bestimmten suche.

Wenn ich den Teil mit BENENNUNG2 weg lasse bei meiner Abfrage zeigt er mir genau das gesuchte an.


Wieso passiert das kann ich keine zwei OR - Verknüpfungen in eine Abfrage nehmen??

Mfg

Manu
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:51
Kann es sein, daß Du die OR's vor dem AND auch noch in Klammern einschließen mußt?
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 15:52
Doch nur man sollte die Klammer richtig setzen sont sucht er nämlich z.b. garnichts wenn nämlich in Bng2E.Text nix drinsteht was genau das ergebniss bringt was du hast.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
waschlap
(Gast)

n/a Beiträge
 
#7

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 16:07
und wie??

SQL.Text:='Select idteil,benennung,benennung2,klassifi From TTEIL where (IDTEIL = ' +QuotedStr(TeilenrE.Text) + ') OR (BENENNUNG = ' +QuotedStr(Bng1E.Text) + ') OR (BENENNUNG2 = ' +QuotedStr(Bng2E.Text)+ ') AND ((KLASSIFI like ''R%'') OR (KLASSIFI like ''S%'')) ';
Klammern sind doch richtig oder nicht??


Mfg
Manu
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#8

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 17:55
Was genau willst denn erreichen?
So etwas (wie's jetzt aussieht)

(IDTEIL = TeilenrE.Text) OR (BENENNUNG = Bng1E.Text) OR (BENENNUNG2 = Bng2E.Text) AND ((KLASSIFI like 'R%') OR (KLASSIFI like 'S%'))

oder so etwas

((IDTEIL = TeilenrE.Text) OR (BENENNUNG = Bng1E.Text) OR (BENENNUNG2 = Bng2E.Text)) AND ((KLASSIFI like 'R%') OR (KLASSIFI like 'S%'))
  Mit Zitat antworten Zitat
ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#9

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 18:34
Hallo!
Schau Dir das Beispiel vom r_kerber an. Zu beachten ist ,daß AND eine höhere Priorität hat. Deshalb immer schön Klammern setzen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Problem mit SQL Abfrage

  Alt 3. Nov 2005, 23:37
Nee, nich unbedingt Params, aber Format hilft da gewaltig, kuckst Du:
Delphi-Quellcode:
SQL.Text:=Format('Select idteil,benennung,benennung2,klassifi From TTEIL where (IDTEIL = %s ) OR (BENENNUNG = %s ) OR (BENENNUNG2 = %s ) AND ((KLASSIFI like ''R%'') OR (KLASSIFI like ''S%'')) ',
[QuotedStr(TeilenrE.Text), QuotedStr(Bng1E.Text), QuotedStr(Bng2E.Text)]);
oder kuckst Du mit meinem insFormat (unter Freeware zu finden):
Delphi-Quellcode:
SQL.Text:=insFormat('Select idteil,benennung,benennung2,klassifi From TTEIL where (IDTEIL = %S ) OR (BENENNUNG = %S ) OR (BENENNUNG2 = %S ) AND ((KLASSIFI like %S ) OR (KLASSIFI like %S )) ',
  [TeilenrE.Text, Bng1E.Text, Bng2E.Text, 'R%', 'S%']);
Die QuotedStr() brauchst Du hier nicht mehr, weil die Formatzeichen in GROSS (%S anstatt %s) automatisch die QuotedStr() mit einbeziehen. Auf sowas kommt man, wenn man schreibfaul ist

So bleibt die Programmierung schön übersichtlich und kann sich entweder um die SQL-Syntax kümmern oder um die Parameter.

cu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz