Whether to use an external DLL or have the functionality embedded? I have a both-ways compromise. I store a copy of the DLL inside the app as a resource. Then if the DLL doesn't extst in the app dir I copy the DLL out, but this also allows me to update the DLL to something more recent by replacing just the DLL. As for using a common sqlite.dll with a whole pile of 3rd party application - I wouldn't take the risk for all the reason already mentioned. This is probably not the nicest solution, but my customers tend to be "zero-install" sort of people - ie copy the application to another machine and hope for the best, so I like an application that looks after itself.
Regards, Carl.