Autor |
Beitrag |
patrick dee
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 11:43
Hi
ich frage in meiner Video Datenbank so ab :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.SpeedButton1Click(Sender: TObject); begin Query1.SQL.Clear; Query1.SQL.Add('Select * from clipdat where clipthema Like ' + #39#37 + edit1.text + #37#39'ORDER by timein ASC' ); Query1.open; Query1.next; Form2.Show; end; |
Nun Frage :
wie muß ich die Abfrage ändern, das egal ob groß oder klein geschrieben wurde etwas gefunden wird. Also es soll Berlin gefunden werden. Egal ob es so Berlin, BERLIN oder berlin geschrieben wurde ???
Danke
schönes WE noch
patrick
Moderiert von raziel: Delphi-Tags hinzugefügt.
Moderiert von Tino: Titel geändert.
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 12:32
Titel: Re: sql abfrage problem - hat jemand einen Hilfe !
Am einfachsten stells du in deinem Edit1 ein, dass nur Großbuchstaben eingegeben werden. Habe die Eingenschaft im Moment nicht im Kopf, kannst du aber im OI einstellen.
Wenn im Datenbankfeld die Daten schon in Großbuchstaben stehen, brauchst du dann nichts weiter machen. Falls nicht, benötigst du für das Feld noch Upper:
SQL-Anweisung 1:
| 'Select * from clipdat where upper(clipthema) Like... |
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:00
Titel: das ist es nicht ganz
Hi jasocol,
Danke für die Antwort. Um alles in einer Edit in groß zu wandeln ist die eigenschaft UpperCase. Das ist mir bekannt. Nun soll aber die Eingabe NORMAL sein. Und wenn mit SQL abgefragt wird, dann soll alles gefunden werden egal ob groß oder klein es in der Datenbank steht. Wie geschrieben : Wenn ich in Edit Berlin eingebe soll alles gefunden werden wie auch wenn ich berlin oder BERLIN eingebe.
Das suche ich
Danke
Patrick
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:02
Dann musst du auf dein Edit1.Text ebenfalls das Upper anwenden.
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:06
Titel: schon versucht - aber
Hi
das habe ich versucht. Es wird aber alles nur gefunden was Großgeschrieben ist. Also steht in der Datenbank BERLIN so muß ich es auch so in die Edit schreiben wenn die eigenschaft der Edit upper ist. Aber es werden keine einträge gefunden dabei die so in der Datenbank stehen : Berlin, berlin
Ich brauche eine Abfrage die alles findet, egal ob der Begriff groß, klein oder der erste Bucstabe groß ist und alle anderen klein.
lg
Patrick
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:14
Hier mal ungetestet, wie ich es machen würde:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.SpeedButton1Click(Sender: TObject); begin Query1.SQL.Clear; Query1.SQL.Add('Select * from clipdat where upper(clipthema) Like upper' + #39#37 + edit1.text + #37#39') ORDER by timein ASC' ); Query1.open; Query1.next; Form2.Show; end; |
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:20
Titel: schlüsselwort falsch
Hi
habe es probiert. Delphi meldet unbekanntes Schlüsselwort %berlin%)
so sieht die Felhlermeldung aus.
Mhh ....
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:27
Da du Text in der Datenbank abfragst, brauchst du Anführungszeichen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.SpeedButton1Click(Sender: TObject); var SuchString : String; begin SuchString := QuotedStr(#39#37 + edit1.text + #37#39); Query1.SQL.Clear; Query1.SQL.Add('Select * from clipdat where upper(clipthema) Like upper(' + SuchString + ') ORDER by timein ASC' ); Query1.open; Query1.next; Form2.Show; end; |
Ich hab den Source mal etwas geändert, damit es übersichtlicher wird.
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:33
Titel: da fehl delphi noch was
Supi das Du mir hilfst,
habe das so wie du geschrieben hast gemacht, Delphi meldet mir :
FELD IM ORDER BY MUSS IM RESULTAT VORHANDEN SEIN.
So eine Meldung habe ich noch nie gesehen.
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:36
Der Fehler besagt, dass das Feld "timein" in der Tabelle "clipdat" nicht existiert.
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:39
Titel: ist vorhandne
---
ist vorhanden. kann es in der dbgrid mit allen einträgen sehen.habe eben nochmals alles geprüft. Ist vorhaneden.
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:42
Lass mal das ASC weg. Das ist sowieso standard.
Eine andere Erklärung für den Fehler kenne ich auch nicht.
Welche DB verwendest du denn?
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 18.09.05 13:50
Titel: --
habe das ASC weggelassen underhalte wieder diese Meldung :
FELD IM ORDER BY MUSS IM RESULTAT VORHANDEN SEIN.
alle Felder sind vorhanden. Also es ist eine Paradox Tabelle mit einer einer DBGRID und einer TTable, DataSource und Querry. Auf Form2 iste eine DataSource und eine DBGrid für das Ergebnis aus der SQL Abfrage.
_________________ Glauben heißt nichts wissen ...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: So 18.09.05 13:58
Ich stelle mal ein paar Vermutungen an, die dann mal rpüfen musst (bin nämlich gleich Offline).
Verwendest du persistente Felder(passiert, wenn du den Feldeditor verwendest)? Dann probier es mal ohne.
Funktioniert die Abfrage denn ohne Delphi? Zum Beispiel im SQL-Explorer, der beeeeedlphi dabei ist.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: So 18.09.05 13:58
Das Feld Timein ist *nicht* in der Ergebnismenge enthalten. Vielleicht wird es anders geschrieben. Aber es ist so, wie im ORDER BY angegeben, einfach *nicht* da.
|
|