Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Memo ( Blob ) durchsuchen (https://www.delphipraxis.net/85816-memo-blob-durchsuchen.html)

manfred_h 5. Feb 2007 11:19

Datenbank: Firbird • Version: 1.5 • Zugriff über: Fibplus

Memo ( Blob ) durchsuchen
 
Hallo zusammen

bin seit längerem mit der Forensuche beschäftigt um mein Problem mit der
Suche im Memofeld zu lösen.
PS: Das Memofeld ist im Moment ein Richtext

Bisher habe ich das so gelöst:
Delphi-Quellcode:
procedure TDM_testimony.search_blob(Sender: TObject);
var
search_text: string;
begin
  search_text := frm_testimony.edt_search.Text;
  with Testimony do
  begin
    Close;
    SelectSQL.Text := ('SELECT * FROM TESTIMONY WHERE TESTIMONY LIKE :serach_str');
    ParamByName('serach_str').asString := '%' + search_text + '%';
    Open;
  end;
end;
Das funktionier auch, aber es werden nur ca 40-50 Zeilen des Memos durchsucht.

Habe auch schon die Möglichkeit mit UDF's das Problem zu lösen angeschaut, leider
ist mir das bisher nicht gelungen.
Hab hierzu das gefunden: > http://devrace.com/en/fibplus/articles/2161.php


To compare a BLOB-field with a value of more than 32 Kb, use a special udf.
For example:
SQL-Code:
select
  ID
from
  BIOLIFE
where
  blobCRC(NOTES) = :NOTES
The code :
Delphi-Quellcode:
TempStream := TMemoryStream.Create;
Try
 TempStream.LoadFromFile('MyFile');
 with DataSet1 do
 begin
  ParamByName('NOTES') .asInteger:= blobCRCPas(MyStream);
  Open;
 end;
finally
 FreeAndNil(TempStream);
end;
In this example blobCRC is udf, and blobCRCPas is a Pascal function.
Both functions must be identical, that is they must return the same result for the same input data.

Leider finde ich die UDF zu diesem Bsp. nirgens.
Könnt Ihr mir einen Tipp geben.

Shalom
Manfred

hoika 5. Feb 2007 12:14

Re: Memo ( Blob ) durchsuchen
 
Hallo,

containing sucht auch in Blobs.
Soweit ich mich erinnere, wird ein Teil der Daten direkt
in der Page gespeichert (?), deshalb klappt wohl
dein Suchen bis zu einer bestimmten Länge.


Heiko

manfred_h 5. Feb 2007 14:07

Re: Memo ( Blob ) durchsuchen
 
Zitat:

Zitat von hoika
Hallo,
containing sucht auch in Blobs.
Soweit ich mich erinnere, wird ein Teil der Daten direkt
in der Page gespeichert (?), deshalb klappt wohl
dein Suchen bis zu einer bestimmten Länge.
Heiko

Hallo Hoika
mit containing gehts irgendwie aus der Applikation nicht. :pale:
SQL-Code:
SelectSQL.Text := ('SELECT * FROM TESTIMONY WHERE TESTIMONY CONTAINING :serach_str');
Erhalte da kein Resultat, wenn ich das aber im IBExpert eingebe geht das. :?:

Erstaunlicherweise kann ich im Moment auch das Problem mit der Suche nicht mehr
nachvollziehen.

Werde das noch genau überprüfen.

Sahlom
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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