![]() |
AW: TADOQuery und LIKE
Zitat:
Dadrauf klicken und dann an der Cursorposition den Quelltext einfügen. Per Copy&Paste bleibt die Formatierung erhalten. Könnte dann in etwa so aussehen:
Delphi-Quellcode:
procedure TDataMod.SQL_LIKE_TBLSearch(
AConnection:TADOConnection; ATblName:WideString; arr_TBLCols:array of string; arr_TBLValues:array of string; APK:string; var AResultList:TStringList ); var AQuery:TADOQuery; ASQLTemp:string; ix:integer; ASQL_Default:string; begin {SELECT STAEDTE.ID_STADT, STAEDTE.STADT_NAME FROM STAEDTE WHERE (([STAEDTE]![STADT_NAME] Like "%Mark"));} if AConnection <> nil then begin if Trim(ATblName) <> EmptyWideStr then begin if Length(arr_TBLCols) > 0 then begin if Length(arr_TBLValues) > 0 then begin if Length(arr_TBLCols) = Length(arr_TBLValues) then begin if TblExists(AConnection,ATblName) then begin AQuery:=TADOQuery.Create(Self); try ASQLTemp := 'SELECT * FROM' + fConstants.BLANK1 + ATblName + fConstants.BLANK1 + 'WHERE' + fConstants.BLANK1; ASQL_Default := ASQLTemp; for ix := Low(arr_TBLCols) to High(arr_TBLCols) do begin if (Trim(arr_TBLCols [ix]) <> EmptyStr) and (Trim(arr_TBLValues[ix]) <> EmptyStr) then begin if Length(arr_TBLCols) = 1 then begin ASQLTemp := ASQLTemp + '[' + ATblName +']![' + arr_TBLCols[ix] + ']' + fConstants.BLANK1 + 'LIKE' + fConstants.BLANK1 + fConstants.AnfZeichen + arr_TBLValues[ix] + '%' + fConstants.AnfZeichen; end else begin if ix < High(arr_TBLCols) then begin ASQLTemp := ASQLTemp + '[' + ATblName +']![' + arr_TBLCols[ix] + ']' + fConstants.BLANK1 + 'LIKE' + fConstants.BLANK1 + fConstants.AnfZeichen + arr_TBLValues[ix] + fConstants.AnfZeichen + fConstants.BLANK1 + 'AND' + fConstants.BLANK1; end else begin if ix = High(arr_TBLCols) then ASQLTemp := ASQLTemp + '[' + ATblName +']![' + arr_TBLCols[ix] + ']' + fConstants.BLANK1 + 'LIKE' + fConstants.BLANK1 + fConstants.AnfZeichen + arr_TBLValues[ix] + fConstants.AnfZeichen; end; end; end; end; if ASQLTemp <> ASQL_Default then begin AQuery.Connection := AConnection; AQuery.SQL.Add(ASQLTemp); AQuery.Open; AQuery.First; while not(AQuery.Eof) do begin AResultList.Add(AQuery.FieldByName(fConstants.TBL_ TOWN_ID).AsString); AQuery.Next; end; AQuery.Close; end; finally AQuery.Free; end; end; end; end; end; end; end; end; |
AW: TADOQuery und LIKE
Ahh ok Danke :)
|
AW: TADOQuery und LIKE
Ja, du kannst im Beitrag oben aus der Formatleiste den "Delphi Helm" auswählen. Dadurch werden die Tags [ delphi ] und das Ende-Delphi Zeichen erzeugt.
|
AW: TADOQuery und LIKE
Sowas
Delphi-Quellcode:
schreibt man dann doch besser (z.B.) so:
ASQLTemp := ASQLTemp + '[' + ATblName +']![' + arr_TBLCols[ix] + ']' + fConstants.BLANK1
+ 'LIKE' + fConstants.BLANK1 + fConstants.AnfZeichen + arr_TBLValues[ix] + '%' + fConstants.AnfZeichen;
Delphi-Quellcode:
Anmerkung 1: Was soll denn 'fConstants.BLANK1'?ASQLTemp := ASQLTemp + Format('[%s]![%s] LIKE %s',aTblName, arr_TBLCols[ix], QuotedStr(arr_TBLValues[ix]+'%')); Bitte beachte die Verwendung der Funktion 'QuotedStr'. Deine Lösung bringt für Werte, die ein Hochkomma enthalten, einen Fehler. |
AW: TADOQuery und LIKE
Und wie schon so oft angemerkt: Verwende parametrisierte Abfragen!
|
AW: TADOQuery und LIKE
Zitat:
den Format-Befehl hätte ich dann auch verwendet, ich wollte nur erstma schaun was ich für Ergebnisse bekomm. fConstants.BLANK1 = Leerzeichen, wenn ich mir strings zusammensetze nutze ich lieber Konstanten, als ' ' , ist ne Angewohnheit von meiner Firma in der ich arbeite ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:19 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