![]() |
Re: Blob mit SQL nach Teilstring durchsuchen?
tblName ist dann bei mir 'Int.db'
fldName ist f.FieldName KeyName ist ? =fldName? KeyValue ist SearchString Edit: Und statt AnsiContainsText() => Pos()>0 Edit2: Ich glaub ich stell mich irgendwie hammermäßig dumm an...wenn ich das so mache dann kommt die Meldung"Keine Übereinstimmung der Typen im Ausdruck" sobald die Query geöffnet wird. |
Re: Blob mit SQL nach Teilstring durchsuchen?
Ich habe meinen Code weiter oben etwas mehr an deine Bedürfnisse angepasst. Vielleicht wird ja dadurch alles etwas klarer für dich?
marabu |
Re: Blob mit SQL nach Teilstring durchsuchen?
Kurze Frage, wie wäre es denn mit:
Delphi-Quellcode:
Hab ich nicht probiert, sollte aber funktionieren, oder?
Var
sString : TStringStream; Begin sString := TStringStream.Create; Try myBlobField.SavetoStream (sString); If Pos ('Foobar', sString.DataString) Then Whatever finally sString.Free End; End; |
Re: Blob mit SQL nach Teilstring durchsuchen?
myBlobField wäre in unserem Beispiel ja dann dataset.Field.Fields[i]
allerdings gibbet da glaub ich kein SaveToStream. |
Re: Blob mit SQL nach Teilstring durchsuchen?
Delphi-Quellcode:
So schon :mrgreen:
TBlobField (MyTable.Fields[i])
|
Re: Blob mit SQL nach Teilstring durchsuchen?
Gefällt mir.
Delphi-Quellcode:
marabu
function GetMemo(tblName, fldName, keyName: string; keyValue: variant): string;
const SELECT = 'SELECT %s FROM %s WHERE %s = :key'; var ss: TStringStream; q: TQuery; begin q := TQuery.Create(nil); with q do begin DatabaseName := 'TEST'; SQL.Text := Format(SELECT, [fldName, tblName, keyName]); Params.ParamValues['key'] := keyValue; Open; ss := TStringStream.Create(''); TBlobField(Fields[0]).SaveToStream(ss); Result := ss.DataString; ss.Free; Close; end; end; |
Re: Blob mit SQL nach Teilstring durchsuchen?
@marabu
pkName := NameOfCandidateKeyOfDataSet; Das heisst doch ich brauch in meiner Tabelle ine Feld wo ich den reinen Text des Memos reinschreibe. und den Name dieses Feldes muss ich hier rein schreiben oder? |
Re: Blob mit SQL nach Teilstring durchsuchen?
Ich bin ein schlechter Lehrer, scheint mir. keyName ist der Name des Feldes in deiner Tabelle INT, den du dort als Primary Key festgelegt hast. Solltest du keinen PK haben, dann musst du statt dessen einen Candidate Key verwenden. Beide Keys haben die Eigenschaft, dass sie den Datensatz eindeutig identifizieren können.
Hoffentlich habe ich es jetzt verständlicher ausgedrückt. marabu (auf dem Weg zum Mittagstisch) |
Re: Blob mit SQL nach Teilstring durchsuchen?
Das funzt jetzt genauso gut wie:
Delphi-Quellcode:
Gleiche Fehlermeldung: TSearch : Auf Feld 'Erstnotiz' kann in einem Filter nicht zugegriffen werden.
Accept := false;
with dataset do for i:= 0 to Pred(FieldCount) do if Pos(SearchString,Fields[i].AsString)> 0 then begin Accept := true; break; end; Info : erstnotiz ist ein memoBlob, TSearch mein Table |
Re: Blob mit SQL nach Teilstring durchsuchen?
Wie heißt denn das Feld in der Tabelle INT, welches als Primärschlüssel festgelegt ist und welchen Typ hat dieses Feld? In der Datenbankoberfläche erkennst du es am Stern in der letzten Spalte, wenn du die Strukturinformationen zur Tabelle anschaust.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 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 by Thomas Breitkreuz