AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einbindung einer SQL-Abrage

Ein Thema von Flash68 · begonnen am 6. Sep 2011 · letzter Beitrag vom 7. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2      
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#1

Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 15:53
Hallo zusammen,

ich möchte gern folgende SQL-Abfrage:

Select * from Sicht where contains(*, '"*Text*"') {Text soll dann durch das Textfeld eines editfeldes sein(edt.text)}

in eine ADO-Querry mit SQL.ADD einbauen.
Bekomme aber entweder Meldungen das beim Compilieren ein Fehler oder es gibt direkt fehlermeldungen wegen der Syntax.

kann mir jemand helfen wie ich die Sonderzeichen mit '' maskiere das die Abfrage richtig ausgeführt wird.

Gruß

Flash

Geändert von Flash68 ( 6. Sep 2011 um 16:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:04
Hast Du einmal versucht, die Abfrage zu parametrisieren?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:18
Das habe ich noch nie gemacht, bis jetzt habe ich immer mit den SQL-Abfragen gearbeitet, weiß nicht wie das geht.

Normal trage ich die Abfragen direkt in das ADO-DataSet ein, nur das ist jetzt für eine Suche da brauche ich die Eingabe über ein Editfeld das dann auf Knopfdruck die Abfrage macht.

Gruß

Flash
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:23
Ein Beispiel aus der hohlen Hand:
Delphi-Quellcode:
ADOQuery.SQL.Text := 'SELECT Name, Vorname FROM Personen WHERE Wohnort = :ort';
ADOQuery.Parameters.ParamByName('ort').Value := 'Kleinkleckersdorf';
ADOQuery.Open;
Hier wird ein Parameter mit Namen 'ort' innerhalb der SQL-Abfrage definiert und später durch den entsprechenden Suchbegriff ersetzt. Anschließend werden die Daten abgerufen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:34
Bei mir muß aber die Abfrage so sein wie in meiner Frage, das ist eine Volltextabfrage und da brauche ich die Sonderzeichen und die werden in der normalen form wie du sie beim SQL-Server eingibst nicht in Delphi akzeptiert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:35
Welche Sonderzeichen meinst Du jetzt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#7

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:50
Folgende:

' und ", manchmal auch * oder %
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Einbindung einer SQL-Abrage

  Alt 6. Sep 2011, 16:53
Sollen die im Edit stehen? Dann werden sie durch das Parametrisieren automatisch passend escaped. Was genau hast Du denn ausprobiert, als die Fehlermeldung kam?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#9

AW: Einbindung einer SQL-Abrage

  Alt 7. Sep 2011, 09:09
ne das muß im Code stehen, sollte ungefähr so aussehen:

SQL.Clear;
SQL.ADD('Select * from Sicht where contains(*, ''"''*' EDT_Suchen.Text '*''"'')');

die eigentliche Abfrage sieht ja so aus: Select * from Sicht where contains(*, '"*Suchtext*"')
aber da meckert der Edit bei den hochkommas und oder wenn nicht dann meckert gibt es eine Fehlermeldung bei der Ausführung, Fehler beim Ausdruck Suchtext.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Einbindung einer SQL-Abrage

  Alt 7. Sep 2011, 09:16
Versuch es mal so:
Delphi-Quellcode:
Query.SQL.Text := 'Select * from Sicht where contains(*, :suchtext)';
Query.Parameters.ParamByName('suchtext').Value := Format('"*%s*"', [EDT_Suchen.Text]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:12 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