Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Blob mit SQL nach Teilstring durchsuchen? (https://www.delphipraxis.net/55683-blob-mit-sql-nach-teilstring-durchsuchen.html)

Angel4585 26. Okt 2005 10:39

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.

marabu 26. Okt 2005 11:12

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

alzaimar 26. Okt 2005 11:12

Re: Blob mit SQL nach Teilstring durchsuchen?
 
Kurze Frage, wie wäre es denn mit:
Delphi-Quellcode:
Var
  sString : TStringStream;

Begin
  sString := TStringStream.Create;
  Try
    myBlobField.SavetoStream (sString);
    If Pos ('Foobar', sString.DataString) Then Whatever
  finally
    sString.Free
  End;
End;
Hab ich nicht probiert, sollte aber funktionieren, oder?

Angel4585 26. Okt 2005 11:19

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.

alzaimar 26. Okt 2005 11:22

Re: Blob mit SQL nach Teilstring durchsuchen?
 
Delphi-Quellcode:
TBlobField (MyTable.Fields[i])
So schon :mrgreen:

marabu 26. Okt 2005 11:34

Re: Blob mit SQL nach Teilstring durchsuchen?
 
Gefällt mir.

Delphi-Quellcode:
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;
marabu

Angel4585 26. Okt 2005 11:44

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?

marabu 26. Okt 2005 12:25

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)

Angel4585 26. Okt 2005 12:52

Re: Blob mit SQL nach Teilstring durchsuchen?
 
Das funzt jetzt genauso gut wie:

Delphi-Quellcode:
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;
Gleiche Fehlermeldung: TSearch : Auf Feld 'Erstnotiz' kann in einem Filter nicht zugegriffen werden.

Info : erstnotiz ist ein memoBlob, TSearch mein Table

marabu 26. Okt 2005 12:56

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.
Seite 3 von 5     123 45      

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