sql server 2000个人版本的更新sp4和一些常见问题

 

1.问题:Error establishing socket.
答:估计是没没打开1433,即可能没更新SP4
用CMD命令netstat查下看看又没1433的端口,看是没启用还是被占用
netstat -an
结果:1433没开,所以思路可以去更新下SP4,
怎么知道sql server2000没更新SP4,
在分析查询器里执行:select @@version
Microsoft SQL Server  2000 - 8.00.194注:不是sp4
参考 select @@version 对应的 sql server 版本:
 6.00.121 v6.0
 6.00.124 v6.0 SP1
 6.00.139 v6.0 SP2
 6.00.151 v6.0 SP3
 6.50.201 v6.5
 6.50.213 v6.5 SP1
 6.50.240 v6.5 SP2
 6.50.258 v6.5 SP3
 6.50.281 v6.5 SP4
 6.50.415 v6.5 SP5
 6.50.416 v6.5 SP5a

 7.00.623 v7.0
 7.00.699 v7.0 SP1
 7.00.842 v7.0 SP2
 7.00.961 v7.0 SP3
 7.00.1063 v7.0 SP4

 8.00.194 v2000
 8.00.384 v2000 SP1
 8.00.534 v2000 SP2
 8.00.760 v2000 SP3
 8.00.2039 v2000 SP4

 9.00.1399.06 v2005
 9.00.2047.00 V2005 SP1

 

 如何安装SQL server 2000 SP4补丁2009-04-11 14:14      
     首先下载了一个SQL Server 2000的个人版安装上去,安装后重启了一下,重新完毕经过测试,SQL是可以正常使用的.
     随后在MicroSoft的官方网站(切记最好是官网下载,有些的下载版本解压后不带setup.bat文件)
  下载了SP4的补丁:SQL2000-KB884525-SP4-x86-CHS.EXE.双击开始安装后会解压缩一个文件夹到C:\SQL2KSP4,文件夹里面有个setup.bat文件,
     双击后开始正常的安装补丁步骤,完成安装。
     如何知道SQL server 2000是否打过sp4补丁?
 1.在查询分析器里master数据库下执行select @@version
   对比安装补丁前后的版本..下面是打了sp4后的个人版执行select @@version后的信息..
 Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
 2.开始->运行 cmd
     netstat -an
     看到TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING (打补丁就是为了开启1433端口)
     即sp4补丁安装成功..
 3.企业管理器打开你的数据库,然后在那个数据节点上
   右键-属性-常规选项卡
   里面有个产品版本

2:如果1433端口被占用,怎么改动sql server 对外的端口
企业管理器>数据库实例,右键>常规>网络配置>启用的协议,选tcp/ip>属性,就可以看到端口号

3:关于win7下的使用

因为sql Server 2000 和win7 兼容性有问题,
第一个是无法在企业管理器里建表,可以点企业管理器的文件的下一行的“*”来新建
或者可以在查询分析器用sql来建立
4:第二个是出现查询分析器无法连接上,(注意,houwen是实例名)
4.1sql server(s):LENOVO-PC\HOUWEN
4.2因为我安装的时候选得是混合模式,
所以我这选的是“sql server(s)身份验证”选项
登录:sa
密码:xx(建的时候的输入的密码)
5.取得本机上所有的实例
DECLARE @retval int
DECLARE @result varchar(500)
DECLARE @object int
DECLARE @objectList int
DECLARE @src varchar(254)
DECLARE @desc varchar(255)
DECLARE @resultsCount int
DECLARE @counter int
DECLARE @method varchar(255)

--创建SQLDMO对象
EXEC @retval = sp_OACreate 'SQLDMO.Application', @object OUT

--检查对象是否创建成功
IF @retval <> 0
BEGIN
    EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
    SELECT hr=convert(varbinary(4),@retval), Source=@src, Description=@desc
    RETURN
END
--调用方法ListAvailableServers() , 为SQLDMO.NameList得到Object_ID
EXEC @retval = sp_OAMethod @object , 'ListAvailableSQlServers()' , @objectList OUT
-- 是否有错误?
IF @retval <> 0
BEGIN
    EXEC sp_OAGetErrorInfo @objectList, @src OUT, @desc OUT
    SELECT hr=convert(varbinary(4),@retval), Source=@src, Description=@desc
    RETURN
END
--计算局域网里的服务器数量
EXEC @retval = sp_OAGetProperty @objectList , 'Count' , @resultsCount OUT
--再一次进行错误处理
IF @retval <> 0
BEGIN
    EXEC sp_OAGetErrorInfo @objectList, @src OUT, @desc OUT
    SELECT hr=convert(varbinary(4),@retval), Source=@src, Description=@desc
    RETURN
END

--如果有服务器的话,进入处理.....
IF @resultsCount > 0
BEGIN
  SET @counter = 1
  DECLARE @ServersTbl table (ServerID int IDENTITY ,ServerName varchar(255))
  WHILE @counter <= @resultsCount
  BEGIN
    --列出SQL实例:一个名字接一个名字的列出
    SET @method = 'Item(' + convert(varchar(3),@counter) + ')'       
    EXEC @retval = sp_OAGetProperty @objectList ,@method , @result OUT
   
    --将数据存到临时表
    INSERT INTO @ServersTbl (ServerName) SELECT @result
   
    --移到下一条记录
    SET @counter = @counter + 1
  END
END
ELSE
BEGIN
  SET @result = 'No Servers around you'
  INSERT INTO @ServersTbl (ServerName) SELECT @result
END
--释放对象
EXEC @retval = sp_OADestroy @object
IF @retval <> 0
BEGIN
  EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
  SELECT hr=convert(varbinary(4),@retval), Source=@src, Description=@desc
  RETURN
END

--好了,可以列出所有可用的实例了 ....
SELECT * FROM @ServersTbl
GO

6.我的代码为Integer   value   =   (Integer)queryForObject(...)
结果一执行到该语句就报以下错误.我在sqlserver监视器中发现sql语句已正确发送到sqlserver上,不知道以下错误是发生原因是什么?
---   The   error   occurred   in   sqlmaps/Machininfo.xml.    
---   The   error   occurred   while   applying   a   result   map.    
---   Check   the   checkUser-AutoResultMap.    
---   Check   the   result   mapping   for   the   'value '   property.    
---   Cause:   java.sql.SQLException:   [Microsoft][SQLServer   2000  
Driver   for   JDBC]Can 't   start   a   cloned   connection   while   in   manual   transaction   mode.

原因:是SQLSERVER需要把URL加上一个参数:把SelectMethod设置为cursor,而不是direct          
connection =  DriverManager.getConnection "jdbc:microsoft:sqlserver://hie:1433;SelectMethod=cursor ","test ","test ");      
不加这个参数默认SelectMethod=direct      

解决方案:(1)

你在尝试打开一个克隆连接,有两种解决办法:   每个数据库的连接在执行完毕后,关闭,
第二,在连接时,判断是否已经有连接存在,有则使用现成的连接。
数据库连接可以设置成一个常量,不需要到处定义。便于维护。

解决方案:(2)

你在DatabaseURL字符串中加入SelectMethod=Cursor;如下  
jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=houwen;SelectMethod=Cursor;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值