同一程序加载sql2000和2005驱动

来源:互联网 发布:知止而定 编辑:程序博客网 时间:2024/06/06 03:25

程序在linux上运行时遇到一个问题,整得我是特别郁闷,不过还是解决了。

在一个程序内加载sql2000驱动,然后又加载sql2005驱动,运行时会报一个错:

       [Microsoft驱动] [SQLServer 2000 程序对于 JDBC][SQLServer] 传入的表格式数据数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。 参数 1 (""): 数据类型 0x38 是未知的。

导致这个错误的原因就是sql2000的驱动,当连接2005时是用的是sql2000的驱动不是2005的,所以就报错。

 

解决方法:

       把sql2000的驱动删了,然后所有的连接数据源和使用的连接URL都按照sql2005的格式写。

 

windows下面同时加载sql2000和2005驱动基本不会出现上述问题,会自动加载各自的驱动。但加载时一定要先让程序加载2005的驱动,然后再加载2000的,如果先加载2000可能会报错。也可以像linux一样,只使用2005的驱动,写法也要按照2005的格式写了。

       在查资料时,看到一篇文章,已经不分2000和2005的驱动了,统一使用2005的驱动,2000、2005、2008都使用同样的驱动。如果你非要使用2000以前的驱动连接2000不可,也没关系,但在使用时一定要注意在这两种操作系统中的所产生问题,以避免不必要的麻烦。(建议像linux那样使用)