Forum

Please or Register to create posts and topics.

Wanted: 64-bit version of fake RMNOCASE for SQLiteSpy

Is there anyone who can recompile the attached Delphi Project file to create a 64-bit version of the fake RMNOCASE collation for SQLiteSpy? I did the 32-bit version many years ago using Delphi 4 - that's the last time I used Delphi and I did not know much about it to begin with!

Tom

PS: replace the .txt extension with .dpr - extension changed to get around an upload barrier

Uploaded files:
Kevin McLarnon has reacted to this post.
Kevin McLarnon

With guidance from the developer of SQLiteSpy, I was able to recompile his Delphi project for a fake RMNOCASE to make a 64-bit DLL for use with the 64-bit SQLiteSpy. The page RMNOCASE: faking it in SQLiteSpy #rmnocase #sqlitespy has been updated.

Now I have Embarcadero Delphi Community Edition without a clue to using it!

Kevin McLarnon has reacted to this post.
Kevin McLarnon

Tom-

I've been successfully using the previously posted 64bit RMNOCASE.dll for the past year with SQLiteExpert and with Python, both on Windows.
That previous version was:
MD5 hash filename
06a1f485b0fae62caa80850a8c7fd7c2 unifuzz64.dll

I've been telling users of my Python scripts to get the unifuzz64.dll from the SqliteToolsforRootsMagic site. Since I didn't compile the dll myself, I wanted to give a trusted download location. I'm a bit disappointed that the old version was removed.

I did a quick test and the new version you just posted seems to also work with both Windows 64bit versions of SQLiteExpert and Python. I haven't actually looked at the sorting sequence, I only checked whether it loads and displays results.

I'd be happy to switch to the new version you just posted-
MD5 hash filename
43fe353e3e3456dc33f8f60933dbc6ab RMNOCASE_fake-SQLiteSpy64.dll
but I'd like to be clear about the source code used to create it.
The new RMNOCASE_fake-SQLiteSpy64.dll 's code is very short. Apparently, it just "mimics SQLite3's built-in NOSORT order." Has the functionality of the old vs. new version been compared?

I never knew where the source for the old version came from. I found a Github project at https://github.com/mooredan/unifuzz that started with code from https://sqlitetoolsforrootsmagic.com/, but the link to unifuzz.c at sqlitetoolsforrootsmagic.com no longer works. The code in unifuzz.c implements an elaborate sorting sequence that we probably don't need.

 

questions-
Did the old version not work with 64bit SQLspy? Is that the reason for the new version?

Was he code in-
MD5 hash filename
98adca33c7507520ae8c90b0844c0d83 DISQLite3_Extension_Collate_NOCASE2.zip
used to compile both the 32 and 64 bit dll's currently posted?

I notice that the new dll, just like the old one, has no version information (windows VERSION resource is missing).
Any chance that could be remedied?

Does the new version work on MacOS and/or Linux?

Thanks!
Richard Otter

Scanning through the Forum, I discovered your unread and unanswered post. How did I miss it? Not sure I'm competent enough to answer everything.

The fake RMNOCASE for SQLiteSpy is simply giving an alternate name to the inherent SQLite NOCASE collation. SQLiteSpy requires extensions to be compiled by Delphi but that extension is unusable by most other SQLite managers. 32-bit Spy requires a 32-b extension; 64-bit Spy requires a 64-b extension. NOCASE covers a subset of the RM Inc RMNOCASE character set so there is clashing when Indexed on one and Integrity Checked on the other.

The unifuzz.dll extension compiled under C is a more complete subset or superset of RMNOCASE so there is considerably less clashing. But SQLiteSpy cannot use it while other managers can. And, typically, other managers require the dll to be the same bits wide as the app.

And there are some managers that disregard an unrecognised collation sequence and default to NOCASE without any error or warning. That cannot be a good thing but it's very convenient.

I'm puzzled by your reference to 'old' version and 'new' version which seems to be comparing an apple to an orange, i.e., a renamed NOCASE vs a unifuzz collation.

And where is the broken link to the unifuzz.c source code. The one here still works: https://sqlitetoolsforrootsmagic.com/rmnocase-faking-it-in-sqlite-expert-command-line-shell-et-al/#Unifuzzc-Source-and-compiling

Thanks for the response explaining the use of the 2 dll extensions with the various sqlite UI apps.
Sorry about complaining about the "broken link". I'm not very good at navigating this site.
I was lamenting the demise of the unifuzz dll only because I thought the link to it on this site was broken.