sql >> Databasteknik >  >> RDS >> PostgreSQL

QT5:Det gick inte att ladda psql-drivrutinen i Windows

Mest troligt misslyckas det att dynamiskt länka qsqlpsql.dll fil när den anropar LoadLibrary på den efter att ditt program begär den drivrutinen. LoadLibrary returnerar samma felkod för när mål-DLL-filen saknas som för när en av de DLL-filer som mål-DLL-filen beror på saknas eller inte kan laddas . Så Qt får troligen ett "bibliotek inte hittat"-fel och antar "åh, Pg-drivrutinen får inte vara i denna Qt-byggnad", där den faktiskt finns och inte kan laddas på grund av beroendeproblem, bibliotekskompatibilitetsproblem, etc.

För att avgöra varför den inte kan laddas kan du, som Frank Osterfeld föreslog, använda ett verktyg som Dependency Walker (depends.exe ) . Om du kompilerar 32-bitars kod på en 64-bitars maskin vill du skaffa 32-bitars dependency walker.

Det är ganska troligt att det misslyckas eftersom det finns ett beroende av qsqlpsql.dll saknas - antingen libpq.dll , eller ett av biblioteken som libpq bygga kräver. Dependency walker hjälper till att isolera detta. Det är också möjligt att du försöker ladda en 64-bitars libpq.dll i ett 32-bitarsprogram, eller vice versa.

Du kan också tycka att det är informativt att köra ditt program med Process Monitor som spårar det. Detta kommer att producera mycket detaljer om vilka filer den försöker öppna/undersöka, bland annat, och kan hjälpa till att spåra saker som oväntad PATH problem.

Om du fortfarande har fastnat finns det alltid möjlighet att gå igenom med en debugger.



  1. Ta reda på antalet månader mellan 2 datum

  2. Att fråga flera gånger i Oracle med perl returnerar endast den första frågan

  3. Rails kan inte logga in på postgresql - PG::Error - lösenord - Korrekt info

  4. Hur man hanterar/använder specialtecken som procent (%) och et-tecken (&) i Oracle SQL-frågor