Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ein "%" Zeichen mit der Formatfunktion ausgeben (https://www.delphipraxis.net/68071-ein-zeichen-mit-der-formatfunktion-ausgeben.html)

Angel4585 24. Apr 2006 11:32

Delphi-Version: unbek.

Ein "%" Zeichen mit der Formatfunktion ausgeben
 
Hallo zusammen,

Ich will mit der Format-Funktion z.B. einen solchen String zusammenbauen:
SQL-Code:
SELECT * FROM Tabelle WHERE Feld LIKE %Suchwert%
aber wie bekomm ich da diese % Zeichen hin? die gelten doch bei Format als Platzhalter oder?

Nun wenn man zwei "%" Zeichen direkt hintereinander der Formatfunktion übergibt, wird daraus ein "%" Zeichen im Ausgabestring:

Delphi-Quellcode:
Format('SELECT * FROM %s WHERE %s LIKE %%%s%%',['Tabelle','Feld','Suchwert']);
und
Delphi-Quellcode:
Format('SELECT * FROM %s WHERE %s LIKE %s%s%s',['Tabelle','Feld','%','Suchwert','%']);

ergeben beide den gesuchten String.


MfG :angel:

mkinzler 24. Apr 2006 11:38

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
Ist das % Teil des Suchstrings?

Angel4585 24. Apr 2006 11:39

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
ne das % ist in diesem Fall dazu da das der Suchstring als Teilstring behandelt wird.
Ich ergänze das gleich noch mit einer weiteren Möglichkeit die ich zuerst nicht bedacht hatte.

Klaus01 24. Apr 2006 11:41

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
kannst Du nicht für % chr(37) verwenden?
% ist bei SQL als Wildcard zu verstehen, ähnlich dem * bei windows

Grüße
Klaus

mkinzler 24. Apr 2006 11:42

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
Warum versuchst du den String zu fomatieren? Ich würde zudem mit Paramtern arbeiten, da ich annehme das die Suchfunktion mehr als einmal ausgrführt wird.

Angel4585 24. Apr 2006 11:47

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
@mkinzler:
In meinem Fall wird das eher eine Art Filtertabelle, wo die Filter eine Bezeichnung bekommen und Tabelle und Suchwert einfach nurnoch in die Tabelle geschrieben werden, man dann über eine ComboBox die Filterbezeichnung auswählt und diese dann automatisch auf die jeweilige Tabelle angewandt wird.

@Klaus01: Wird Chr(37) nicht einfach als "%" vom Compiler intepretiert? Es würde in dem Fall nämlich nichts ändern.

Edit: vielleicht ist das ein schlechtes Beispiel von mir, es geht ja nur darum das % Zeichen mit der Format-Fuktion auszugeben. Nicht um SQL oder so.

dfried 24. Apr 2006 11:50

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
Einfach "%%"!

Angel4585 24. Apr 2006 11:52

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
Ach.. ähm.. kann mir jemand sagen ab welcher Delphiversion es diese Formatfunktion gibt(Für die korrekte Angabe)? Ich hab bisher nur mit Delphi6 und Delphi 2005 gearbeitet und da gabs die jeweils.

@dfried: Es war ja keine Frage, sondern ein Vorshclag für die CodeLib :zwinker:

dfried 24. Apr 2006 12:02

Re: Ein "%" Zeichen mit der Formatfunktion ausgebe
 
Zitat:

Zitat von Angel4585
@dfried: Es war ja keine Frage, sondern ein Vorshclag für die CodeLib :zwinker:

Sorry, hab nur den ersten Teil des Beitrags gelesen... :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz