thanks for the support and the effort that this project does not die
I want to tell've done testing on DELPHI XE2 and going great
but want to filter and the field is not filter chain is not whether you have failed to prove this.
thanks in advance for your help
my English is not so good sorry my mistakes
Indeed, there is a bug for string filters. Below, the check on Param^.Args was missing in dbf_prsdef (the lines containing the comment starting with "// lsp" were added):
procedure _StringVariable(Param: PExpressionRec);
if Assigned(Param^.Args) then // lsp, not set for ExprRec^.ExprWord.FixedLen<0!!!!
length := PInteger(Param^.Args)^
length := -1;
if length = -1 then
length := StrLen(PPAnsiChar(Param^.Args)^); // Was PPChar
Param^.Res.Append(PPAnsiChar(Param^.Args)^, length); // Was PPChar
Furthermore, the management of TStringFieldVar.RawStringField was incorrect. To force that FFieldVal has a value assigned I modified dbf_parser.pas for TDbfParser.HandleUnknownVariable:
TempFieldVar := TStringFieldVar.Create(FieldInfo, TDbfFile(FDbfFile));
TempFieldVar.FExprWord := DefineStringVariable(VarName, TempFieldVar.FieldVal);
TStringFieldVar(TempFieldVar).FRawStringField := not FRawStringFields; // lsp, force update !!!
TStringFieldVar(TempFieldVar).RawStringField := FRawStringFields;
I hope this helps.
I'd like to ask where can I find the latest version, maybe fully compatible with XE2 containing all the patches?