Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 28.09.02 15:23 
Hi Patrick Dee,

hast Du es schonmal mit Jokern probiert ? (Sternchen u.s.w)
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 28.09.02 15:32 
Hi Patrick,

ich nehme alles zurück, das mit den Jokern geht nicht.

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 28.09.02 15:37 
Kein Problem :wink2:
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Sa 28.09.02 15:59 
:?:
bis11 was heißt bei dir kein Problem ????????????

gruß

patrick :(

_________________
Glauben heißt nichts wissen ...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 29.09.02 10:51 
Hi!

patrick dee hat folgendes geschrieben:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: So 29.09.02 14:30 
hi peter

hattest natürlich recht habe ich ganz übersehen. :oops: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: So 29.09.02 16:25 
Hi
das QuotedStr nützt hier leider nix weil die %-Zeichen innerhalb der Anführungszeichen stehen müssen.
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 29.09.02 16:56 
Hi!

Ich hatte an so etwas gedacht:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 30.09.02 14:48 
Hi!

Bekommst zu Deiner letzten Frage eine ganz kurze Antwort: :nixweiss:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Mo 30.09.02 17:53 
hat sich erledigt habe es schon

ciao

patrick

_________________
Glauben heißt nichts wissen ...