But the only way to guarantee a unique value would be to generate the checksum, then scan the existing values in the table to see if the new value already exists, and then modify it if it does.[/code]
You could do a double lookup. You create a lookup table with (iID, cCRC32, cLongvalue), you SET KEY TO CRC32(longvalue) and SCAN REST FOR cLongvalue=longvalue. If not found, you add a record here with CRC32(longvalue) and longvalue stored into it, generating a new iID. If found, you use the iID of that record and obviously you are in full control to generate a unique ID value, really simply an integer id, and put these int id values in any table you'd now want to index on CRC32 checksums. Then have an index on that column and you can almost as easily seek some record by a really unique value, no matter if there are longvalues having a CRC32 value collision.
It's a doulbe lookup every time though, first in this table, then seek or query the int in the table of real interest. I doubt it really will help, but you could even define a memo field for longvalue and have an index for large values you could otherwise not index.
Bye, Olaf.