Einzelnen Beitrag anzeigen

manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

Memo ( Blob ) durchsuchen

  Alt 5. Feb 2007, 11:19
Datenbank: Firbird • Version: 1.5 • Zugriff über: Fibplus
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
  Mit Zitat antworten Zitat