Cannot Create MS SQL Repository

Version Info:
Servoy R2 2.2.4 build-336 on Windows XP using Java 1.5.0_06

I pointed my Developer to use MS SQL server for the repository.
There was not already a Repository - I was creating a new one.

I got an error saying that the repository coul not be created:

com.microsoft.sqlserver.jdbc.SQLServerException: sp_cursoropen/sp_cursorprepare: The statement parameter can only be a batch or a stored procedure with a single select, without FOR BROWSE, COMPUTE BY, or variable assignments.

I restarted Developer and was instructed to upgrade the repository version.
I clicked ok and got this error:

com.microsoft.sqlserver.jdbc.SQLServerException: There is alre
ady an object named 'servoy_clients' in the database.

I guess the repository is partially created now?
What should I do? I don’t see any tables that have been created.

Here’s the rest of the StackTrace from the failure to upgrade the repository:

com.servoy.j2db.persistence.RepositoryException: Old repository found in the dat
abase. Repository version: 0, software version: 27. Upgrade the repository first
.
com.servoy.j2db.persistence.RepositoryException: Old repository found in the dat
abase. Repository version: 0, software version: 27. Upgrade the repository first
.
        at com.servoy.j2db.persistence.Repository.int(Unknown Source)
        at com.servoy.j2db.persistence.Repository.<init>(Unknown Source)
        at com.servoy.j2db.persistence.Repository.<init>(Unknown Source)
        at com.servoy.j2db.persistence.Server.getRepository(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.startOrCreateRepository(Unknown
 Source)
        at com.servoy.j2db.develop.at.new(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.aG(Unknown Source)
        at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
        at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.dataBaseInit(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:119)
        at Servoy.main(Servoy.java:28)
Apr 13, 2006 9:53:20 AM net.sf.hibernate.dialect.Dialect <init>
INFO: Using dialect: net.sf.hibernate.dialect.SQLServerDialect
com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.Rep
ositoryException: com.microsoft.sqlserver.jdbc.SQLServerException: There is alre
ady an object named 'servoy_clients' in the database.
com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.Rep
ositoryException: com.microsoft.sqlserver.jdbc.SQLServerException: There is alre
ady an object named 'servoy_clients' in the database.
        at com.servoy.j2db.persistence.k.a(Unknown Source)
        at com.servoy.j2db.persistence.Server.createRepositoryTables(Unknown Sou
rce)
        at com.servoy.j2db.develop.J2DBDeveloper.startOrCreateRepository(Unknown
 Source)
        at com.servoy.j2db.develop.at.new(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.aG(Unknown Source)
        at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
        at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.dataBaseInit(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
        at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:119)
        at Servoy.main(Servoy.java:28)
Caused by: com.servoy.j2db.persistence.RepositoryException: com.microsoft.sqlser
ver.jdbc.SQLServerException: There is already an object named 'servoy_clients' i
n the database.
        at com.servoy.j2db.persistence.Server.a(Unknown Source)
        at com.servoy.j2db.persistence.Server.a(Unknown Source)
        ... 16 more
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: There is already an
object named 'servoy_clients' in the database.
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
(Unknown Source)
        at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown
 Source)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown S
ource)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecute(Unknown Sou
rce)
        at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(Unknown Sourc
e)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source)
        at $Proxy1.execute(Unknown Source)
        at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStateme
nt.java:183)
        at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStateme
nt.java:183)
        at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStateme
nt.java:183)
        ... 18 more

I’m having the same problem with my MSSQL server 2005. Any solution about this point out there?

Servoy Developer
Version 3.0b3-build 364
Java version 1.5.0_06-b05 (Windows XP)

Thanks
Hans-Peter

To be clear, these are the steps you’re taking - right?

  1. Install the JDBC drivers into the “drivers” folder in your Servoy install folder and restart Servoy.

  2. Create a new, empty SQL Server DB (i called mine “servoy_repository”)

  3. Open Edit → Preferences → DB Servers and RENAME your existing “repository_server” connection to “repository_server_old”

  4. From the “Auto-setup Server” pop-up menu at the bottom - choose “MS SQL”

  5. Name the connection (in the “Server Name”) column: repository_server

  6. Put in the name of the database you created “servoy_repository” in my case) in the driver URL (in place of “”)

  7. Open File → Repository… and click the “Check repository” button.

(OR INSTEAD OF #7 RESTART SERVOY APPLICATION)

Also - WHAT JDBC Driver are you using?

Hi Bob,

thanks for help. Yes, I’ve done these steps. The connection is not the problem, neither. I can see tables of other MSSQL databases, read data, write, delete, edit, etc. without any problems.

Problems come up only when I want to set up the repository on the MSSQL server. Also here it doesn’t look like there’s a problem with the connection. However tables are built in the database “servoy_repository”. It looks like this just doesn’t get finished. I can’t subscribe it better than sdevlin in his post. I’m getting exactly the same errors.

Also - WHAT JDBC Driver are you using?

Microsoft SQL Server 2005 JDBC Driver
Version 1.0
January 2006

Here’s the rest of the StackTrace from the failure to upgrade the repository:

com.servoy.j2db.persistence.RepositoryException: com.microsoft.sqlserver.jdbc.SQLServerException: sp_cursoropen/sp_cursorprepare: Der Anweisungsparameter kann nur ein Batch oder eine gespeicherte Prozedur mit einer einzelnen SELECT-Anweisung und ohne FOR BROWSE, COMPUTE BY oder Variablenzuweisungen sein.
	at com.servoy.j2db.persistence.k.a(Unknown Source)
	at com.servoy.j2db.persistence.Server.createRepositoryTables(Unknown Source)
	at com.servoy.j2db.develop.J2DBDeveloper.startOrCreateRepository(Unknown Source)
	at com.servoy.j2db.develop.at.z(Unknown Source)
	at com.servoy.j2db.develop.J2DBDeveloper.long(Unknown Source)
	at com.servoy.j2db.ClientState.dataBaseInit(Unknown Source)
	at com.servoy.j2db.J2DBClient.dataBaseInit(Unknown Source)
	at com.servoy.j2db.develop.J2DBDeveloper.dataBaseInit(Unknown Source)
	at com.servoy.j2db.develop.J2DBDeveloper.for(Unknown Source)
	at com.servoy.j2db.develop.J2DBDeveloper.main(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.servoy.j2db.startup.Bootstrap.main(Bootstrap.java:45)
	at Servoy.main(Servoy.java:28)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: sp_cursoropen/sp_cursorprepare: Der Anweisungsparameter kann nur ein Batch oder eine gespeicherte Prozedur mit einer einzelnen SELECT-Anweisung und ohne FOR BROWSE, COMPUTE BY oder Variablenzuweisungen sein.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
	at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source)
	at $Proxy1.execute(Unknown Source)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:230)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:230)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:230)
	... 16 more

Attached also a screenshot from the db setup in Servoy.

Thanks
Hans-Peter

can you try removing SelectMethod=cursor?

Cool :D , it works! Thanks.

Hans-Peter