Entwickler-Ecke
Datenbanken - SQL-Abfragen in Quelltext integrieren
Anonymous - So 17.11.02 04:55
Titel: SQL-Abfragen in Quelltext integrieren
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 - So 17.11.02 09:49
Titel: Re: SQL-Abfragen in Quelltext integrieren
| 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 - So 17.11.02 12:56
Hey,
benutze doch die Params Eigenschaft deiner TQuery Komponente aus. Als SQL Anfrage gibts du folgendes an:
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 - So 17.11.02 17:32
Oder Du setzt die Hochkommata einfach rein, sieht zwar anfangs gewöhnungsbedürftig aus, aber es geht:
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 - 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:
Anonymous - Mo 18.11.02 16:32
Hi,
vielen, vielen Dank für die Hilfe! :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!