Im trying to make a program in Qt that uses a SqlLite database, but i can not get it to work...
When i try to execute a query i get the error:
Driver not loaded Driver not loaded
But when i print out the drivers that are available i get:
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
I have downloaded the SqlLite dll for both 32 bit & 64 bit and when put ether of them in my release folder (after using windeployqt) i still get the same error..
So it should be available for use or am i missing some thing?
You need to create folder sqldrivers near the executable and copy there the files from folder plugins/sqldrivers from where your Qt system is installed. (at least qsqlite4.dll or 5 or so on dependently from your Qt version)
I do not meet necessity to download SqlLite dll to make sqlite database work in my projects in Qt4.
Related
I have an OCX that has been updated, and a .exe and a .dll that both use it. My problem is that while the .exe can connect and use the OCX just fine, the .dll is having problems. Specifically, the CreateDispatch(clsid, &e) call fails with an 80040154 exception (class not registered). Both the .exe and the .dll are on the same machine, and the connection code is practically identical. I've looked in the archives for CreateDispatch problems, but none of the answers seem to apply. The only other thing to note is that the .dll is a 32-bit ODBC Driver setup module, called from the ODBC Data Sources (32-bit) utility.
Any ideas?
Thanks in advance.
if i try to run my qt application on windows 7, the console print:
QPSQL driver not loaded ... available driver:...QPSQL...
After that, i've tried to include the following paths to the windows path variable
C:\psql32\bin;C:\psql32\include;C:\psql32\lib;
The application can connect to the psql db and all works fine. How can i fix this problem, without to install the psql software on all pc's. ?
Best regards, chris.
Usually you don't need to use the drivers from Postgres. At least in the version I use (commercial, 4.8.4, Win)
Qt provides the drivers in the directory <QTDIR>\plugins\sqldrivers.
When the application runs on the computer, where Qt is installed, nothing should be done explicitly - Qt should find the drivers.
When the application is deployed on a computer without Qt-installation, I copy release versions of the files found in <QTDIR>\plugins to <MyAppExeDir>\plugins.
Besides Sql drivers, same problem could apply also to jpeg an other pluggable components.
P.S.:
Make sure, not to mix Qt-dlls from one computer with Qt-plugins from other computer, even if the versions are the same.
Hoping that I do this corectly.
I am having the above issue. My development machine is win7 64. Im developing x86 application,(x86 set in compile options). I have downloaded sqlite-netFx40-setup-bundle-x86-2010-1.0.81.0 as my app will be on .net4. I have referenced the above dll, set it to copy local. Can confirm that its in the deployed dirrectory. Tests OK on development machine both as a debug and a fully instaled app. When I put the app on a separate win 7 64bit it wount run due to the Dll. It installs ok into ProgramFiles(x86) and runs untill the database is required. The dll is in the instaled dirrectory when instaled on the other PC. (fresh win instal).
I am using InstalShield and it is also telling me about an error ' -6248: Could not find dependent file system.data.sqlite.dll, or one of its dependencies of component' but it compiles OK.
Im stearing at the Dll in the program , in the references, the intelisence picksup the SQLite name and all the code is right. I have referenced by browse and then finding the dll.
What on earth could I be doing wrong ?
This has had so many views that I decided to answer this so as to help others.
The problem isnt a big deal once you know what it is, despite the error message that sends you almost in the wrong dirrection. The problem isnt the DLL, its one of its dependancies. Basicaly you have to install C++ distributable file on the client machine , even if you are using VB.net. I cant take credit for the find, it comes from here http://justanothersoftwareengineer.blogspot.com.au/2011/08/how-to-make-systemdatasqlitedll-work-on.html.
I'm making installation script and I'm using ODBC, how can I automatically add a node to ODBC Data Sources.
Building installer with Visual Studio setup project, but I'm able to run any script for it.
Thank you.
1)
ODBC Data Sources are typically defined in registry entries - located at -
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI...... (DSNs on 32bit Windows or 64bit Windows)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI...... (DSNs on 64bit Windows for 32bit Drivers)
That part of the registry contains the "System" DSNs - HKEY_CURRENT_USER contains "User" DSNs.
Of course, all drivers are different so there may be additional stuff required elsewhere too...
2)
You could also consider using File DSNs and ship the fie with the installer.
3)
You could also consider a DSN'less connection - but this would depend on how the ODBC application is coded.
I'm working on an installer that, among other things, installs a web server.
As part of the setup, I'm setting up an ODBC driver and data source. I'm
trying to put a bunch of utility files, including the third party ODBC driver DLL,
into a certain folder, but when I run the installer, it insists on changing
that directory to the SystemFolder directory. Why is it doing this, and is
there any way that I can make it install the files where I want them to go?
Strangely enough, it was actually working correctly up until I added a bunch
more files to that particular folder. In case it's relevant, the files that I'm having trouble with are in a merge module.
(I'm temporarily getting around the problems that this is causing by
installing the DLL to the SystemFolder, but I'd much rather avoid DLL hell by
having it installed where I want it to go, not where Windows Installer seems
to think it should go.)
I should also point out that I'm using Wise Installation Studio 7.0 as my development environment.
It would seem that it's not Windows Installer that insists on the ODBC Driver DLL being installed in the SystemFolder directory, but Wise. We found this solution for getting rid of an Error 1918 problem that we were also seeing, which says to take the driver entries out of the ODBCDriver table, and stick them in as Registry entries instead. After implementing that fix, we tried moving our DLL to where we really want it to be installed, and the installer was happy with that.