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