sql >> Database teknologi >  >> RDS >> PostgreSQL

QT5:Kunne ikke indlæse psql-driver i Windows

Mest sandsynligt mislykkes det dynamisk at linke qsqlpsql.dll fil, når den kalder LoadLibrary på det efter dit program anmoder om den driver. LoadLibrary returnerer den samme fejlkode, når mål-DLL'en mangler, som når en af ​​de DLL'er, mål-DLL'en afhænger af mangler eller ikke kan indlæses . Så Qt får muligvis en "bibliotek ikke fundet"-fejl og antager "åh, Pg-driveren må ikke være i denne Qt-build", hvor den faktisk er til stede og ikke kan indlæses på grund af afhængighedsproblemer, bibliotekskompatibilitetsproblemer osv.

For at afgøre, hvorfor den ikke indlæses, kan du, som Frank Osterfeld foreslog, bruge et værktøj som Dependency Walker (depends.exe ) . Hvis du kompilerer 32-bit kode på en 64-bit maskine, vil du have 32-bit afhængigheds-walker.

Det er meget sandsynligt, at det fejler, fordi der er en afhængighed af qsqlpsql.dll mangler - enten libpq.dll , eller et af de biblioteker, der libpq bygge kræver. Dependency walker vil hjælpe med at isolere dette. Det er også muligt, at du forsøger at indlæse en 64-bit libpq.dll i et 32-bit program eller omvendt.

Du kan også finde det informativt at køre dit program med Process Monitor, der sporer det. Dette vil producere en masse detaljer om, hvilke filer den forsøger at åbne / undersøge, blandt andet, og kan hjælpe med at spore ting som uventet PATH problemer.

Hvis du stadig sidder fast, er der altid mulighed for at gå igennem med en debugger.



  1. Har problemer med at kombinere HAVING med WHERE på en meget enkel QUERY

  2. PostgreSQL og ActiveRecord undervælges til race tilstand

  3. SQL Dynamic ASC og DESC

  4. Vælg flere kolonner fra to tabeller ved hjælp af greendao