Perhaps I misunderestimate your question, but I think a certain amount of
explanation of how SQLite works may be in order. What are you trying to do?

The SQLite shell tool does not depend on the DLL (the SQLite library is
instead included in the executable file). You can put sqlite3.exe wherever
you like and do not need to copy anything else around with it. Probably in
a PATH folder is best, so you can access it whenever necessary; but I have
also included it in project folders that I have worked on so I can check it
straight into source control to make it easier for other developers to use
(with a certain amount of cringing about what I was doing).

SQLite is not like other database management systems (MSSQL, MySql,
Postgre, etc.) in that it does not have a dedicated server that runs to
control DB access. Instead, every application that wants to use SQLite
directly accesses the relevant files, using the SQLite library. The library
can be though of as a component of the particular app that wishes to access
SQLite databases.

As a result, as a user you should not need to put the dll anywhere. Any
program that relies on SQLite should include it with its distribution,
either as a DLL which will be installed into that programs install
directly, or compiled directly into the executable of the program.

You should only need the SQLite dll if you intend to build applications
(using an unmanaged language, such as C or C++) that use SQLite*. In that
case, it will likely reside with other third party libraries your project
references, and you should ensure that any installer you distribute
includes that file.

*Sometimes it's better to use the dll file to build applications, sometimes
it's better to just download a copy of the amalgamation c source files and
include that in your project.

On 10 October 2017 at 08:38, Keith Medcalf <> wrote:

> Hmmm.
> Must be rather old since it mentions 16-bit Windows but not 64-bit
> Windows.  So for all the parts that reference the "System" directories you
> need to apply a grain of salt....
> 64-bit Windows looks for 64-bit DLLs in Windows\System32
> 64-bit Windows looks for 32-bit DLLs in Windows\SysWOW64 (and not in
> Windows\System32)
> 32-bit Windows looks for 32-bit DLLs in Windows\System32
> 32-bit Windows looks for 16-bit DLLs in Windows\System
> The "Common Files" search location is automagically, on 64-bit Windows,
> Program Files (x86)\Common Files when looking for at 32-bit DLL and
> Program Files\Common Files when looking for 64-bit DLL
> Similarly the names for 32-bit versions of Windows searching for 32-bit
> DLLs is
> Program Files\Common Files
> Also, searches that search the "Program Files" tree will automatically use
> "Program Files (x86)" tree if looking for 32-bit DLLs on 64-bit Windows
> Other search locations in the AppData tree also magically redirect to the
> (x86) directories if looking for 32-bit DLLs on 64-bit Windows
> Paths are not modified so you better hope that if you put the DLL in a
> directory in the (various) paths that it will attempt to load ONLY THE
> FIRST such DLL found and will crash (or the loader will fail) if the DLL
> first found is the wrong "bitedness".  There are sekret registry hacks that
> you can do to register the "same" module in different locations for
> 16/32/64 loading automagically (more or less) but those hacks are not
> officially supported.
> So, if you are using multiple versions of the same module named DLL, you
> have to be careful where you put it, unless you know that you will only
> ever require one model, or the application itself loads the DLL from the
> Application Directory.  Otherwise, if you need multiple models
> simultaneously you need to be careful where you put them of use the default
> System directories.
> ---
> The fact that there's a Highway to Hell but only a Stairway to Heaven says
> a lot about anticipated traffic volume.
> >-----Original Message-----
> >From: sqlite-users [mailto:sqlite-users-
> >] On Behalf Of Warren Young
> >Sent: Tuesday, 10 October, 2017 08:57
> >To: SQLite mailing list
> >Subject: Re: [sqlite] SQLite3 on Windows
> >
> >On Oct 10, 2017, at 3:49 AM, Phoenix <>
> >wrote:
> >>
> >> 2) Does the .dll need to be in a specific folder or is it okay if
> >the
> >> folder is listed in my PATH?
> >
> >
> >us/library/windows/desktop/ms682586(v=vs.85).aspx
> >
> >_______________________________________________
> >sqlite-users mailing list
> >
> >
> _______________________________________________
> sqlite-users mailing list
sqlite-users mailing list

Reply via email to