| Autor |
Beitrag |
patrick dee
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Sa 28.09.02 15:20
Hi
in meiner Musikdatenbank frage ich den Interprten so ab :
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.SQL.Clear;
Query1.SQL.Add('Select * from hdtitel where Interpret = "' + edit1.text + '"');
Query1.open;
end;
Das funktioniert. Nr habe ich immer noch das Problem das wenn der Interpret aus zwei oder drei Namen besteht nix gefunden wird.
ABBA wird alles gefunden wenn ich es in Edit1 eingebe. ABer wenn zb
drin steht Goldberg Musikanten und ich in Edit 1 Musikanten eingebe findet
die Query nichts. Ich möchte aber das wenn ich Musikanten eingebe alle Einträge gezeigt werden wo Musikanten vorkommt. Oder ich gebe Love ein, so sollte mir alles angezeigt werden wo das Wort vorkommt. oder Udo wenn ich Udo eingebe in die Edit11 alles gefunden wird Jürgens Udo , Udo Lindenberg usw.
Hoffe das mein Problem klar ist.
danke
patrick dee 
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Sa 28.09.02 15:23
Hi Patrick Dee,
hast Du es schonmal mit Jokern probiert ? (Sternchen u.s.w)
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Sa 28.09.02 15:28
nein noch nicht ist das erstemal das ich mich an SQL traue.
habe twar viel gelesen bisher aber nicht so das richtige für mein problem gefunden. mache mehr im sound bereich und wenn datenbank dann bisher ohne sql
gruß
patrick dee
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Sa 28.09.02 15:32
Hi Patrick,
ich nehme alles zurück, das mit den Jokern geht nicht.
Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); begin Query1.SQL.Clear; Query1.SQL.Add('Select * from hdtitel where Interpret <> "' + edit1.text + '"'); Query1.open; end; |
Dieser Quelltext sollte aber weiterhelfen. Quelltext nicht getestet
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Sa 28.09.02 15:35
DANKE
habe es probeirt, es wird nun die ganze datenbank angezeigt.
wenn ich eingebe abba kommt die komplette datenbank in die liste
gruß
patrick dee
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Sa 28.09.02 15:37
Kein Problem 
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Sa 28.09.02 15:59
bis11 was heißt bei dir kein Problem ????????????
gruß
patrick 
_________________ Glauben heißt nichts wissen ...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 28.09.02 17:47
Hi!
Du kannst in SQL Joker verwenden. Der Joker ist jedoch "%" und nicht "*". Außerdem verwendet man dann "LIKE".
Eine Abfrage sähe dann so aus:
Quelltext 1:
| SELECT * FROM hdtitel WHERE Interpret LIKE "%Udo%" |
zu beachten: "%" steht für beliebig viele Zeichen, möchtest Du nur einen Joker, nimmst Du "_".
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 29.09.02 09:49
peter lustig danke für deine hilfe A B E R !
wie wird dies mit einer Edit1 verwendet denn darum geht es mir logisch das ich nicht nur immer udo suche !
gruß
patrick
_________________ Glauben heißt nichts wissen ...
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 29.09.02 09:57
hi mr lustig,
dank für den tip. suche aber - wie zu lesen ist - dies in verbindung mit einer Edit1 da ich ja nicht ständig nach udo suche. wie geht das ???
patrick
_________________ Glauben heißt nichts wissen ...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 29.09.02 10:51
Hi!
| patrick dee hat folgendes geschrieben: |
Quelltext 1:
| Query1.SQL.Add('Select * from hdtitel where Interpret = "' + edit1.text + '"'); |
|
Das hast Du ganz oben geschrieben. Wenn Du das "=" durch "LIKE" ersetzt und vor und hinter dem edit1.text noch ein "%" einfügst, sollte es funktionieren.
Habe ich nicht extra dazu geschrieben, weil ich dachte, dass das eigentlich nicht so schwer wäre.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 29.09.02 14:30
hi peter
hattest natürlich recht habe ich ganz übersehen.  habe es nun so :
procedure TForm1.BTNSuche1Click(Sender: TObject);
begin
Query1.SQL.Clear;
Query1.SQL.Add('Select * from hdtitel where Interpret Like "' + edit1.text + '"');
Query1.open;
end;
Allerdings geht es nicht: Suche ich Frank findet er alles auch Frank Zappa.
Gbe ich Zappa ein passiert nix. Kann ich die suche auch mit einer ProgressBar1 kombinieren um zu sehen wie der suchfortschritt steht ???
Weiteres Beispiel geben Black ein sollte Titel von Roy Black finden. Nix wird angezeigt. Gebe ich Roy ein findet er sie. Was stimmt noch nicht ???
gruß patrick
_________________ Glauben heißt nichts wissen ...
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: So 29.09.02 14:37
sorry habe da was vergessen natürlich steht es so
procedure TForm1.BTNSuche1Click(Sender: TObject);
begin
Query1.SQL.Clear;
Query1.SQL.Add('Select * from hdtitel where Interpret Like "' + "%" edit1.text "%" + '"');
Query1.open;
end;
geht aber nicht habe alles os gemacht wie du sagtest auch das
"%" vor und nach Edit1 gesetzt. Da meckert Delphi ungültiges Zeichen
"%"
gruß
patrick
_________________ Glauben heißt nichts wissen ...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 29.09.02 15:43
Hi!
Sorry, war mein Fehler, hätte ich vorher bemerken sollen:
Ich habe jetzt mal in einem Programm von mir nachgeguckt, dort werden keine " benutzt, sondern einfache '
Ich glaube, die Funktion QuotedStr sollte Dir dabei helfen.
Außerdem kommt % nicht in Anführungszeichen. Das war nur für den Text in AUQ gedacht, nicht für den Delphi-Quelltext. Sorry, nochmal mein Fehler. Du behandelst die % so, als ständen sie mit in edit1.text.
Ich hoffe, diesmal habe ich mich verständlicher ausgedrückt und dieses mal keine Fehler gemacht.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: So 29.09.02 16:25
Hi
das QuotedStr nützt hier leider nix weil die %-Zeichen innerhalb der Anführungszeichen stehen müssen.
Quelltext 1:
| Query1.SQL.Add('Select * from hdtitel where Interpret Like ' + #39#37 + edit1.text + #37#39); |
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 29.09.02 16:56
Hi!
Ich hatte an so etwas gedacht:
Quelltext 1:
| QuotedStr('%'+edit1.text+'%'); |
Aber so, wie Du es geschrieben hast, ist es natürlich genauso gut.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Mo 30.09.02 08:10
HI
vielen Dank es funktioniert jetzt.
Aber ich hätte gerne noch gewußt ob es möglich ist eine ProgressBar einzubauen um zu sehen wie die suche steht. habe in meiner datenbank mehr als 10.000 einträge stehen.
Danke noch einmal
patrick dee
_________________ Glauben heißt nichts wissen ...
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mo 30.09.02 14:48
Hi!
Bekommst zu Deiner letzten Frage eine ganz kurze Antwort:
MfG,
Peter
P.S.: Könnte man in einem Timer evtl. RecNo oder so abfragen?????????
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Mo 30.09.02 17:12
Hi
glaube nicht, dass das hinzukriegen ist. Allenfalls noch über eine Callback-Routine, wenn du die Datenbank über die BDE abfrägst. Aber bei einer SQL Datenbank schickst du ja nur den Befehl und kriegst vom Server die komplette Ergebnismenge.
Da nützt leider auch kein RecNo, weil du den ja auch erst hast, wenn alle Datensätze da sind.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Mo 30.09.02 17:53
hat sich erledigt habe es schon
ciao
patrick
_________________ Glauben heißt nichts wissen ...
|
|