View Single Post
Old 13th June 2020, 02:46 AM
AndyPhotoBell AndyPhotoBell is offline
Junior Member
Join Date: May 2020
Posts: 7
Default FindKey - weird error


C++ Builder 2007 + NexusDB 3.09

I have a simple table with a WideString field and an int32 field, both of which are in an index.

I want to use FindKey to find a record so I use this syntax:

TVarRec vr = (path, map);
Paths->FindKey(&vr, 1);

(path is a WideString and map is an int. Both have valid values).

The call to FindKey always fails with the message 'Invalid Value for Field DriveMap'.

If I change my code to use SetRangeStart() (etc) with the same values it works ok.

If I change my WideString search variable to a regular AnsiString then the call to FindKey succeeds. So it looks to me that there's a bug either in Nexus v3.09 or in C++ Builder 2007 (or both) with using FindKey (and the other Find... functions) when one of the parameters is a WideString.

Other than giving up on the Find functions, does anyone know a way to make this work?