#166 SchemaSpy broken for Microsoft SQL Server

open
John Currier
5
2013-12-16
2013-03-03
Tong Sun
No

Hi John,

I'm just trying out the SchemaSpy to spy on my Microsoft SQL Server DB (on Win7). What I found is that SchemaSpy is still using a very old JDBC driver.

The error I got is:

Using database properties:
[schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/mssql.properties
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

Failed to load driver 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
These entries don't point to valid files/directories: [C:\Program Files\Microsof
t SQL Server 2000 Driver for JDBC\lib\msbase.jar, C:\Program Files\Microsoft SQL
Server 2000 Driver for JDBC\lib\mssqlserver.jar, C:\Program Files\Microsoft SQL
Server 2000 Driver for JDBC\lib\msutil.jar]

Use the -dp option to specify the location of the database
drivers for your database (usually in a .jar or .zip/.Z).

I did some googling, and found that the JDBC for SQL 2000 had those in the install package (Msbase.jar, Mssqlserver.jar, Msutil.jar), but since SQL server 2005, there have been only 1JAR file. Ref:
http://scn.sap.com/message/6219217
http://www.bigresource.com/MS_SQL--msbase-jar-mssqlserver-jar-msutil-jar-for-JDBC-SQL-Server-2005-missing-in-install-from-Microsoft--Cmd3GyND.html

And also according to

Microsoft SQL Server JDBC Driver 2.0
March 2009

the Installation Directory is:

%InstallationDirectory%\Microsoft SQL Server JDBC Driver\sqljdbc_<version>\&lt;language>\

Could you double check it please?

Meanwhile, could you send me a sample of the generated .dot Graphviz file please? As complicated as possible please. It's for my personal use, and I won't redistribute it.

Discussion

  • Dave Angulo
    Dave Angulo
    2013-12-16

    It appears that it has never been tested with Microsoft SQL Server. The SQL Server JDBC classname is NOT 'com.microsoft.jdbc.sqlserver.SQLServerDriver', it is 'com.microsoft.sqlserver.jdbc.SQLServerDriver' (the 'jdbc' and the 'sqlserver' are backwards).

    There also seems to be a problem with the URL connection string.

    Finally, I am getting no output (getting "connection closed"). If I can figure this out and fix it, I will try to submit changes to fix these problems.