When I try to load nsdbipg.so I get the following error
Error: modload: /usr/local/ns/bin/nsdbipg.so: cannot find symbol "Ns_DbDriverInit": /usr/local/ns/bin/nsdbipg.so: undefined symbol: _Ns_DbDriverInit
I tried to complie nsdbipg with -Wl,--no-as-needed flag and I got the same error
What exact version of NaviServer, nsdbi and nsdbipg are you using? One should always use matching versions from the version numbered subdriectories (or tip, when development versions are needed).
Note as well that there are two families of db drivers, both containing a PostgreSQL driver:
Both driver families consist of a generic part and a db specific part.
Thanks for your reply.
I was trying the following versions :
I tried the latest version "nsdbpg", the naviserver loaded it successfully.
Currently, I'm facing the same issue with the mySQL and memcache drivers nsdbmysql and nsmemcache respectively (latest for both from https://bitbucket.org/account/user/naviserver/projects/PROJ).
the erorr for nsdbmysql is cannot find symbol Ns_TclDbGetHandle
the error for nsmemcache is cannot find symbol Ns_ModuleVersion
when using naviserver-4.99.17, one should use the modules from naviserver-4.99.17-modules.tar.gz, which includes nsdbi and nsdbipg in version 0.3. As a reference, below is a sample config file and sample query,
If this still does not work, please report OS version and compiler.
Do you need nsdbmysql and nsmemcache? AFIKT, both of these modules are not widely in use.
-gn
Config file simple-config.tcl :
The example script (e.g. in /usr/local/ns/pages/nsdbi.tcl)
Start server:
Last edit: gustafn 2019-01-14
I have added the missing symbol to nsmemcached (available via https://bitbucket.org/naviserver/nsmemcache/)
thanks