I can't reverse engineer sqlserver 2008, or read any meta data beyond the database names.
Any suggestions?
I'm using the new MS driver in
file:/C:/Program Files/Java/jre1.6.0_07/lib/ext/sqljdbc4.jar
tried various accounts with and without sqljdbc_auth.dll.
Other tooling seems to work ok with the driver.
Environment an trace below .
Regards
George
Env:
Power*Architect 0.9.14
Copyright 2003-2009 SQL Power Group Inc.
Operating System:
Windows Vista 6.1 (x86) ( is really Windows 7 Enterprise)
Runtime Environment:
Java(TM) SE Runtime Environment
1.6.0_07-b06
trace:
ca.sqlpower.sqlobject.SQLObjectException: Failed to get schema names from source database
at ca.sqlpower.sqlobject.SQLSchema.fetchSchemas(SQLSchema.java:89)
at ca.sqlpower.sqlobject.SQLCatalog.populateImpl(SQLCatalog.java:163)
at ca.sqlpower.sqlobject.SQLObject.populate(SQLObject.java:249)
at ca.sqlpower.sqlobject.SQLObject.getChildCount(SQLObject.java:319)
at ca.sqlpower.architect.swingui.DBTree$PokeDBWorker.pokeDatabase(DBTree.java:787)
at ca.sqlpower.architect.swingui.DBTree$PokeDBWorker.pokeDatabase(DBTree.java:789)
at ca.sqlpower.architect.swingui.DBTree$PokeDBWorker.doStuff(DBTree.java:772)
at ca.sqlpower.swingui.SPSwingWorker.run(SPSwingWorker.java:104)
at java.lang.Thread.run(Unknown Source)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'table_schem'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:786)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:685)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:620)
at ca.sqlpower.sql.jdbcwrapper.SQLServer2008DatabaseMetaDataDecorator.getSchemas(SQLServer2008DatabaseMetaDataDecorator.java:64)
at ca.sqlpower.sqlobject.SQLSchema.fetchSchemas(SQLSchema.java:77)
... 8 more
Hopefully this will help resolve the schema issues for a while.
I tried various other tools, including writing code with the MS 2008 driver and it worked ok, just not with PA. I tried various edits with pl.ini and still couldn't reverse engineer from 2008.
I gave up with the MS JDBC driver and tried jTDS - it worked. It's only peculiarity is the URL format, which combined with the way the PA dialog words resulted in...
Hostname Samsungx65
Port 1433;instance_name=mssqlserver
that gave a JDBC URL of
jdbc:jtds:sqlserver://Samsungx65:1433;instance_name=mssqlserver
test connection worked ok as did the rest of the reverse engineering.
Looking like one of those 'this may change in future releases' thing has happened to the MS driver.
Hey, I'm having this same problem and while I understand how your resolved your problem at the most basic level, I don't have the time / inclination right now to figure out how to recreate all your steps.
Where do you get the jTDS driver? How do I ensure that SQL Power Architect uses the jTDS driver and not the MS JDBC driver?