Yes, these are two different systems. I am testing a
normal database connection. i.e. database server on
one host and database client on another. My startup
script sets mapi_opne=true.
jdbc and mapiclient connections are working just great
in this configuration. I also have success with a
windows client and a linux server, as well as a linux
client and a windows server.
The ODBC driver is not honoring the hostname,
username, nor password configuration settings.
--- Sjoerd Mullender
Colin Foss wrote:
My configuration:
Server is windows 64bit, MonetDB SQL 2.16.2 with ODBC 2.16.2.1. Client is windows 32bit, MonetDB SQL 2.16.2 with ODBC 2.16.2.1.
Are these different systems?
I must admit, I haven't had time to test ODBC on 64bit Windows yet, and I don't have much time now either.
One thing to watch out for when they are different systems is that the MonetDB server by default only accepts connections from localhost, i.e. the system itself. The error looks like this might be the problem.
You can open up the server by editing the file ...\etc\MonetDB.conf (MonetDB4) or ...\etc\monetdb5.conf (MonetDB5) and changing the value of the variable mapi_open to true (in MonetDB5 you need to add it: mapi_open=true). And of course, the Windows firewall has to allow connections to the port (50000 by default).
I compared the contents of C:\program files\CWI\MonetDB4\lib with C:\windows\system32. All files with the same name match file size, version (where available), and timestamp. libmonet.dll and libbat.dll existed only in C:\program files\CWI\MonetDB4\lib so I copied them to the system32 directory and rebooted. The effect was the same.
From MSExcel 2003, the Microsoft query app reports "Drivers's SQLSetConnectAttr failed".
========= ODBC DEBUG ============== DllMain 1 SQLAllocHandle Env 0 new env 1163bc0 SQLSetEnvAttr 1163bc0 200 2 SQLAllocHandle Dbc 1163bc0 new dbc 1163be0 SQLGetInfoW 1163be0 77 SQLSetConnectAttrW 1163be0 115 addDbcError 1163be0 HY092 Invalid attribute/option identifier 0 SQLSetConnectOptionW 1163be0 103 2d addDbcError 1163be0 HYC00 Optional feature not implemented 0 SQLDriverConnectW 1163be0 "DSN=dev_test;" 1 SQLConnect: DSN=dev_test UID=monetdb PWD=monetdb host=localhost port=50000 database=(null) addDbcError 1163be0 08001 Client unable to establish connection 0 SQLGetDiagRecW Dbc 1163be0 1 SQLGetDiagRecW Dbc 1163be0 1 SQLGetDiagFieldW Dbc 1163be0 SQLGetDiagFieldW Dbc 1163be0 SQLFreeHandle Dbc 1163be0 SQLFreeHandle Env 1163bc0 DllMain 3 DllMain 0 ========= ODBC DEBUG ==============
I noticed in the log that the ODBC driver is trying to incorrectly connect to localhost using the incorrect username and password. I had this problem last year but I thought it was fixed in 2.16.*.
--- Sjoerd Mullender
wrote: I have been trying to test ODBC with MonetDB with little success. JDBC and MapiClient are working.
MS*Excel, R, and other utilities all fail while
Colin Foss wrote: trying
to initialize a connection via ODBC to MonetDB.
Does anyone have a valid ODBC configuration to Monet?
I am assuming you're trying this on Windows. I just tried MonetDB4-SQL-2.16.2.msi and MonetDB5-SQL-2.16.2.msi on a clean 32 bit Windows XP Professional, and I had no problems.
Perhaps you can define your environment a bit more completely?
A few things to check/keep in mind:
The uninstall isn't robust. If the MonetDB ODBC driver is still somehow active during uninstall, some files remain in C:\windows\system32 which may then not be replaced on a subsequent install.
Check whether the files libMapi.dll libMonetODBC.dll libMonetODBCs.dll libmutils.dll libstream.dll (in my installation, that's all files matching the pattern lib*.dll in C:\windows\system32) are identical to the files in your installation folder (typically C:\Program Files\CWI\MonetDB*\lib) are identical, and if not, copy the ones from the installation folder over the ones in C:\windows\system32.
Windows programs tend to not follow standards. I have encountered many programs (among them Excel) that produce SQL queries that MonetDB refuses. Typically the error is General Error, i.e. useless. The problem is usually column names that are the same as SQL keywords and that are not surrounded by double quotes.
You can produce debug output by setting an environment variable in the environment of the program using the ODBC driver (e.g. Excel). The variable name is ODBCDEBUG and the value should be the full path name of a file. This file will contain the debug output.
Basically all calls to the driver will be logged there.
-- Sjoerd Mullender
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ MonetDB-users mailing list MonetDB-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-users
-- Sjoerd Mullender