Connect issue to SQL Server using x64bit Matlab

2 vues (au cours des 30 derniers jours)
R. Scott
R. Scott le 18 Fév 2011
All,
I am trying to connect to a SQL Server using x64 bit Matlab. What frustrates me is that both versions see the dBase but only my x32 bit Matlab can connect (same machine Win 7). This holds true even when I load the dBase driver in the 'conn' statement.
conn = database('SeverName','r******er','**','com.microsoft.sqlserver.jdbc.SQLServerDriver')
But when I attempt to connect(using: exec(conn,'sqlquery')) I receive the following error: Message: 'Function requires three or five arguments to be defined'
What is even more frustrating is that I can easily connect to the same dBase and pull data using the x64-bit version of R.
Any suggestions?
Note: I have left certain words purposely for security..and its required by my firm. -------------- O/S = Windows 7 Pro x64 SQL = SQL 2008 R2; driver = SQL Server Native Client 10.0 ver: 2009.100.1600.01

Réponses (2)

the cyclist
the cyclist le 18 Fév 2011
I'm on a Mac and I am using postgresql, so not sure how related this is, but I have to add my JAR file to the Java path:
javaaddpath('<path to file>/postgresql-8.3-604.jdbc3.jar');
Maybe that is different for your x64 than your x32?
  2 commentaires
Oleg Komarov
Oleg Komarov le 18 Fév 2011
Windows Server 2008, Matlab 64bit, we had to add the *.jar file.
R. Scott
R. Scott le 19 Fév 2011
Thanks for the insight Cyclist & Oleg. I will try these solutions out. Q: Oleg this may seem redundant but which .jar file did you add? Was a specific one or standard. Thanks because the dataset is too large to load into the x32 bit version..

Connectez-vous pour commenter.


Oleg Komarov
Oleg Komarov le 19 Fév 2011
  1. Download ans save somewhere the Microsoft SQL Server JDBC Driver 3.0: the page contains a FAQ section and links to extensive documentation.
  2. Add manually the fullpath of the .jar driver (we used sqljdbc4.jar) to matlabroot\toolbox\classpath.txt
  3. Check that the path was added correctly (it took us several attempts) with:
javaclasspath
.
If you want to use windows authentication when connecting to MSSQL Server: add the directory of the .dll file supplied with the driver (refer to the link above for more details).
You may also want to try out my wrapper for MSSQL server-to-Matlab connectivity.
Oleg
  4 commentaires
R. Scott
R. Scott le 15 Mar 2011
Oleg: sorry for being MIA. I needed to do a few things in x32 fast so I had to sign out for a bit. As far as path the following is the finial lines in classpath.txt
$matlabroot/java/jarext/jogl.jar
mac=/System/Library/Java
maci=/System/Library/Java
maci64=/System/Library/Java
$matlabroot/toolbox/javabuilder/jar/javabuilder.jar
C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\
C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar
C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\
C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\sqljdbc4.jar
C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\
C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc.jar
C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\
C:\Program Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\sqljdbc.jar
does this look normal?
Oleg Komarov
Oleg Komarov le 16 Mar 2011
Yes it does look ok (if you copied it from cmd window after calling javaclasspath).
I think you're mistaking with the URL part, build it as:
URL = ['jdbc:sqlserver://' server ':' port ';database=' dbname '];
Or try my submission on the FEX.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by