AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Code: Was ist falsch?
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Code: Was ist falsch?

Ein Thema von Plague · begonnen am 13. Okt 2004 · letzter Beitrag vom 13. Okt 2004
Antwort Antwort
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 05:59
Hallo,

ich schreibe momentan ein Adressbuch und möchte gerne eine Suchfunktion einbauen, aber egal was ich mit dem SQL Code auch mache, immer kommen fehler. Die normale Abfrage (SELECT * FROM Adressbuch) am Start funktioniert. Was ist hier falsch?

Delphi-Quellcode:
Form1.Frame21.Query1.Close;
Form1.Frame21.Query1.SQL.Clear;
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name = ' + Edit1.Text);
Form1.Frame21.Query1.ExecSQL;
Danke
Thomas
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#2

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 06:17
Ich schon wieder

Also so kommt schon mal keine Fehlermeldung mehr, aber ich bekomme auch nichts ausgegeben... Was kann ich jetzt noch machen?

Delphi-Quellcode:
Form1.Frame21.Query1.Close;
Form1.Frame21.Query1.SQL.Clear;
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name like :Suche');
Form1.Frame21.Query1.ParamByName('Suche').AsString := LowerCase(Edit1.Text);
Form1.Frame21.Query1.ExecSQL;
Gruß
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 06:17
Delphi-Quellcode:
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name = ' + QuotedStr (Edit1.Text));

Form1.Frame21.Query1.ParamByName('Suche').AsString := '%' + LowerCase(Edit1.Text) + '%';
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 07:09
Zitat von Plague:
Ich schon wieder

Also so kommt schon mal keine Fehlermeldung mehr, aber ich bekomme auch nichts ausgegeben... Was kann ich jetzt noch machen?

Delphi-Quellcode:
Form1.Frame21.Query1.Close;
Form1.Frame21.Query1.SQL.Clear;
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name like :Suche');
Form1.Frame21.Query1.ParamByName('Suche').AsString := LowerCase(Edit1.Text);
Form1.Frame21.Query1.ExecSQL;
1, Der Weg über Parameter ist schon mal gut. Damit bist du vor SQL-Injection geschützt
(Bei deinem ersten Versuch wäre ein Wert "''; DROP Database xyz;" in Edit1.Text evtl. sehr problematisch.

2, Für Ergebnismengen mußt Du mit Open bzw. Active := True arbeiten Form1.Frame21.Query1.Open; ExecSQL ist für SQL-Anweisungen ohne Ergebnismenge gedacht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#5

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 12:52
Hallo,

Delphi-Quellcode:
Form1.Frame21.Query1.Close;
Form1.Frame21.Query1.SQL.Clear;
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name like :Suche');
Form1.Frame21.Query1.ParamByName('Suche').AsString := '%' + Quotedstr(Edit1.Text) + '%';
Form1.Frame21.Query1.Open;
trotz deines Ratschlages mit Open bekomme ich nichts ausgegeben.
Wenn ich statt nach dem Namen nach der Telefonnummer suche, funktioniert es. Kann es sein, dass es an den Leerzeichen oder sowas liegt?

Danke
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 12:54
Hai Plague,

warum setzt Du dein Suchwort denn in ' ' ein?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#7

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 12:57
@Sharky

Was meinst Du genau?
Ich habe doch lediglich den SQL Code in '' gesetzt. Das Suchwort (Suche) muss man ja in '' setzen, da es sonst nicht funktioniert. Oder?
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#8

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 13:01
Ich bin so doof!

Jetzt weiß ich was Du meinst. Das QuotedStr war falsch...
Jetzt funktioniert es

Danke
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: SQL Code: Was ist falsch?

  Alt 13. Okt 2004, 13:02
Zitat von Plague:
...Das Suchwort (Suche) muss man ja in '' setzen, da es sonst nicht funktioniert. ..
Eigentlich nicht. Das musst Du bei Strings machen wenn Du den SQL-Befehl "von Hand" aufbaust. Aber da Du mit Parametern arbeitest sollte es einfach so gehen:

Delphi-Quellcode:
Form1.Frame21.Query1.Close;
Form1.Frame21.Query1.SQL.Clear;
Form1.Frame21.Query1.SQL.Add('SELECT * FROM Adressbuch WHERE Name like :Suche');
Form1.Frame21.Query1.ParamByName('Suche').AsString := '%' + Edit1.Text + '%';
Form1.Frame21.Query1.Open;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz