Can't connect to database when the servername has a backslash in it

40 views (last 30 days)
I am using JDBC to connect to various databases, and as whole everything is working incredibly smooth - However, there is another database located on a server where the servername is something like "PART1\PARTB", when I use this as the servername, the backslash is used as an escape character, and there is a message given as:
"JDBC Driver Error: The TCP/IP connection to the host PART1, port x has failed etc."
This however works for every other database and server, and works on other applications.
The code I use to connect, which I have changed some of the name is:
conn = database('DB1','','','Vendor','Microsoft SQL Server', ...
'Server','PART1\PART2','AuthType','Windows');
Can anyone help me figure out what the issue is here, and what the workaround/fix for this is?
Thanks

Accepted Answer

James McBrearty
James McBrearty on 3 Jul 2023
So after a bit of work, I managed to get connect to this database:
jdbcDriver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver';
serverName = 'Server';
databaseName = 'DBName';
instanceName = 'Instance';
url = ['jdbc:sqlserver://' serverName ';instanceName=' instanceName ';databaseName=' databaseName ';integratedSecurity=true;'];
conn = database(databaseName,'','',jdbcDriver,url);
So, as can be seen, I just made the URL itself, as the JDBC connection does have an instance property in it, however, MATLAB's database function doesn't so you have to manually do it.
It may be good if @MathWorks Support Team could add this functionality to the existing database code.
Thanks,
James

More Answers (1)

Jon
Jon on 27 Jun 2023
There may be a much cleaner way to deal with this. I'm not sure of the details of why you get this error. Are you on a windows machine? If so you can map your network drive and then just use the mapped drive location without the slashes
  1 Comment
James McBrearty
James McBrearty on 28 Jun 2023
So it is an internal server, but the permissions involved may not allow me to map it as a drive, as it is not a network drive. I have tried this on 2023a, and have had the same issues.
I'm assuming it will be a Java issue, due to backslash being an escape character.

Sign in to comment.

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!