Autor Beitrag
Kuckuckskind
Gast
Erhaltene Danke: 1



BeitragVerfasst: So 17.11.02 04:55 
Guten Morgen allerseits,

ich möchte in mein Delphi-Programm eine Suchfunktion integrieren. Einfach SQL-Abfragen beherrsche ich ja:

SELECT * FROM buecher WHERE (Titel = 'Der Geschichtenerzähler') AND (Autor = 'Jostein Gaarder');
So, diese Abfrage würde auch zum gewünschten Ergebnis führen.

Nur leider ist es wenig sinnvoll eine Suchfunktion einzurichten, bei der man nach festgelegten Begriffen sucht. Und da fängts an: Ich habe zwei Edit-Felder angelegt, deren Inhalt ausgelesen werden soll (Start durch Button-Klick).
So, ich habe mir gedacht, die SQL-Abfrage könnte dafür so aussehen:
Query1.SQL.Text := 'SELECT * FROM buecher WHERE (Titel = '+Edit1.Text+') AND (Autor = '+Edit2.Text+')';
Naja, geht halt nicht...

Aber da ich mir sicher bin, dass ich hier im Forum auf erfahrene, versierte Programmierer treffe, wird mir sicherlich geholfen! :P
Hagbard Celine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 119



BeitragVerfasst: So 17.11.02 09:49 
Kuckuckskind hat folgendes geschrieben:
Guten Morgen allerseits,

ich möchte in mein Delphi-Programm eine Suchfunktion integrieren. Einfach SQL-Abfragen beherrsche ich ja:

SELECT * FROM buecher WHERE (Titel = 'Der Geschichtenerzähler') AND (Autor = 'Jostein Gaarder');
So, diese Abfrage würde auch zum gewünschten Ergebnis führen.

Nur leider ist es wenig sinnvoll eine Suchfunktion einzurichten, bei der man nach festgelegten Begriffen sucht. Und da fängts an: Ich habe zwei Edit-Felder angelegt, deren Inhalt ausgelesen werden soll (Start durch Button-Klick).
So, ich habe mir gedacht, die SQL-Abfrage könnte dafür so aussehen:
Query1.SQL.Text := 'SELECT * FROM buecher WHERE (Titel = '+Edit1.Text+') AND (Autor = '+Edit2.Text+')';
Naja, geht halt nicht...

Aber da ich mir sicher bin, dass ich hier im Forum auf erfahrene, versierte Programmierer treffe, wird mir sicherlich geholfen! :P


Das stimmt fast !

Diese Anweisung erzeugt diesen String (Edit Texte wie oben!!!) :

Query1.SQL.Text := 'SELECT * FROM buecher WHERE (Titel = '+Edit1.Text+') AND (Autor = '+Edit2.Text+')';


SELECT * FROM buecher WHERE (Titel = Der Geschichtenerzähler) AND (Autor = Jostein Gaarder)!!!!!!!!!!!!

Den Fehler hatte ich auch! bei mySQL musst Du auf jeden Fall die Hochkomma zusätzlich einfügen!!!!

dazu verwende einfach chr(39)!!!!

Also :

Query1.SQL.Text := 'SELECT * FROM buecher WHERE (Titel = '+ chr(39) +Edit1.Text+chr(39)+') AND (Autor = '+chr(39)+Edit2.Text+chr(39)+')';
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: So 17.11.02 12:56 
Hey,

benutze doch die Params Eigenschaft deiner TQuery Komponente aus. Als SQL Anfrage gibts du folgendes an:
ausblenden Quelltext
1:
SELECT * FROM buecher WHERE (Titel = :titel) AND (Autor = :autor)					


Mit Query.ParamByName('Autor').AsString := 'Mayer-Kukkuk'
setzt du die Parameter. Danach einfach die Query wie gewohnt öffnen.

Gruss,
Tom
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 17.11.02 17:32 
Oder Du setzt die Hochkommata einfach rein, sieht zwar anfangs gewöhnungsbedürftig aus, aber es geht:
ausblenden Quelltext
1:
'SELECT * FROM buecher WHERE (Titel = '''+Edit1.Text+''') AND (Autor = '''+Edit2.Text+''')					

Die ersten zweo Hochkommata stellen eins dar (weil sonst wärs ja ein String-Ende, das dritte repräsentiert das String-Ende.

Gruß
Alfons-G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 307

Win XP Prof, Linux, Win 7
D5 Prof, D7 Architect, D2005 Architect, D2007 Architect
BeitragVerfasst: Mo 18.11.02 15:32 
:wave:
Am einfachsten ist die Funktion QuotedStr... WHERE (FELDNAME = ' + QuotedStr(Edit1.Text) + ') AND (...Das ist übersichtlich und man sieht sofort, der String ist in Hochkommas.

:idea:

_________________
Alfons Grünewald
Kuckuckskind
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 18.11.02 16:32 
Hi,

vielen, vielen Dank für die Hilfe! :D