在java 开发的系统中,将数据库从sql2000升级2005时会报错,会出现“com.microsoft.sqlserver.jdbc.SQLServerException: 无法在给定的语句中打开服务器游标。请使用默认结果集或客户端游标。”类似这样的错误,在网上查了,信息不多,sql2000升级2005的解决方法也不多,难道只有我一个人遇到过这样的问题?
将数据据库从sql2000升级2005后,原来好端端的程序,竟然报了一堆错误。错误信息主要如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 无法在给定的语句中打开服务器游标。请使用默认结果集或客户端游标。
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.doExecuteQuery(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(Unknown Source)
sql2000升级2005报错的环境及分析原因:
1、语言用java 做,数据库用hibernitat。驱动用microsoft的驱动。
2、在sql 2000数据库时,程序运行正常,将数据库升级到2005后,一样的程序,就报错了(数据库驱动也换成2005的驱动了)。
3、好像有时候能正常,有时候不正常。最开始的时候,好像没有问题,但过段时间后,就完全不行了。(不知道是不是我记错了)
sql2000升级2005报错的分析及解决办法
1、经过仔细比对,发现好像是sql2000升级2005后,只有调用存储过程时,才会报此错误,一般的数据库操作,并不会报此错误。
2、换数据库驱动。直接把JTDS 数据库驱动换上 。结果:好了
结论:
微软数据库驱动不好啊。该换就换吧。
个人经验,sql2000升级2005报错的问题是解决了,其实最最本质的原因,还没有完全找到,难道真是微软驱动不好?希望对那些遇到sql2000升级2005报错的同样问题,有点帮助。