--- sql/sqlite/parser3sqlite.C 2021/02/01 18:56:45 1.18 +++ sql/sqlite/parser3sqlite.C 2021/11/08 09:03:09 1.20 @@ -8,7 +8,7 @@ #include "pa_sql_driver.h" -volatile const char * IDENT_PARSER3SQLITE_C="$Id: parser3sqlite.C,v 1.18 2021/02/01 18:56:45 moko Exp $" IDENT_PA_SQL_DRIVER_H; +volatile const char * IDENT_PARSER3SQLITE_C="$Id: parser3sqlite.C,v 1.20 2021/11/08 09:03:09 moko Exp $" IDENT_PA_SQL_DRIVER_H; #define NO_CLIENT_LONG_LONG #include "sqlite3.h" @@ -509,14 +509,19 @@ private: private: // sqlite client library funcs linking - const char *dlink(const char *dlopen_file_spec) { + const char *dlink(char *dlopen_file_spec) { if(lt_dlinit()){ if(const char* result=lt_dlerror()) return result; return "can not prepare to dynamic loading"; } - lt_dlhandle handle=lt_dlopen(dlopen_file_spec); + lt_dlhandle handle; + do { + char *next=lsplit(dlopen_file_spec, ','); + handle=lt_dlopen(dlopen_file_spec); + dlopen_file_spec=next; + } while (!handle && dlopen_file_spec); if(!handle){ if(const char* result=lt_dlerror()) @@ -526,7 +531,7 @@ private: // sqlite client library funcs #define DSLINK(name, action) \ pa_##name=(t_##name)lt_dlsym(handle, #name); \ - if(!name) \ + if(!pa_##name) \ action; #define DLINK(name) DSLINK(name, return "function " #name " was not found")