| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 723 人关注过本帖
标题:如何快速判断SQL服务器是否开机
取消只看楼主 加入收藏
y12692189
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2021-9-23
结帖率:63.64%
收藏
已结贴  问题点数:20 回复次数:4 
如何快速判断SQL服务器是否开机
如何快速判断SQL服务器是否开机呢?
用SQLSTRINGCONNECT()>0  来判断,如果联通会很快,如果没开机会等半天,有没有更快的办法呢?
搜索更多相关主题的帖子: 开机 是否 判断 快速 服务器 
2023-06-26 16:45
y12692189
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2021-9-23
收藏
得分:0 
别的论坛找了段代码,运行的时候说找不到MSWINSCK.WINSOCK类定义

程序代码:
Function VfpPing
Lparameters tcWhere, tnWhichPort
Local lReturnValue

* [color=#0000FF]by josh@jassing.com[/color]
* [color=#0000FF]with LOTS of help from (actually; all the hard work by) Markus Voellmy[/color]
* wrapped up [color=#0000FF]as a big function by Lou Harris[/color]
*
* ? pingstate( pingx( "www.,[color=#800000]80 ) )[/color]
* would [color=#0000FF]check  to be sure it's running a web server
* NOTE: it does not do any dns lookups; so if you[/color]'re checking for a mail server, you need
* [color=#0000FF]to resolve the mx record yourself.[/color]

If Vartype(tnWhichPort) # "N"
   tnWhichPort = 80
Endif
*? pingstate( pingx( "www.,80 ) )
lReturnValue = pingstate( pingx( m.tcWhere, m.tnWhichPort ) )
Return m.lReturnValue

#Define sckClosed 0
#Define sckOpen 1
#Define sckListening 2
#Define sckConnectionPending 3
#Define sckResolvingHost 4
#Define sckHostResolved 5
#Define sckConnecting 6
#Define sckConnected 7
#Define sckClosing 8
#Define sckError 9
Endfunc

Function pingstate
Lparameters tnState
Local lcState
Do Case
Case tnState = sckClosed
   lcState = "Closed"
Case tnState = sckOpen
   lcState = "Open"
Case tnState = sckListening
   lcState = "Listening"
Case tnState = sckConnectionPending
   lcState = "Waiting"
Case tnState = sckResolvingHost
   lcState = "Resolving"
Case tnState = sckConnecting
   lcState = "Connecting"
Case tnState = sckConnected
   lcState = "Connected"
Case tnState = sckClosing
   lcState = "Closing"
Case tnState = sckError
   lcState = "Error"
Otherwise
   lcState = "Unknown"
Endcase
Return lcState
Endfunc

Function pingx
Lparameters tcServer, tnPort
Local lnState, loPing, lnLast
loPing=Createobject("mswinsck.winsock")
With loPing
   .remoteport = tnPort
   .remotehost = tcServer
   .Connect()
   lnLast = -1
   Do While .state < sckConnected
      If lnLast # .state
         lnLast = .state
      Endif
   Enddo
   lnState = .state
   .Close()
Endwith
Return lnState
2023-06-26 16:54
y12692189
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2021-9-23
收藏
得分:0 
回复 3楼 厨师王德榜
感谢,短小精炼,非常适用
2023-06-30 15:07
y12692189
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2021-9-23
收藏
得分:0 
回复 3楼 厨师王德榜
我测试了一下,把127.0.0.1改成任意地址均返回.T.

包括192.168.0.500,也返回的.T.

1.1.1000.500,也返回的.T.

您受累再给改改
2023-06-30 15:20
y12692189
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2021-9-23
收藏
得分:0 
FUNCTION IsCanConnect(lcRemoteIP) as Boolean
* 原意是测试某远程主机是否开机 ?但是本函数的实质是:测试某远程IP是否可ping ?
* 如果远程主机设置了不允许ping,不等于远程主机未开机.所以本函数酌情使用.
    local lnResult
    lcRemoteIP= IIF(!EMPTY(lcRemoteIP),lcRemoteIP,"127.0.0.1")  && 防参数错误
    toShell = CREATEOBJECT("WScript.Shell")
    lnResult = toShell.Run("ping " + lcRemoteIP, 0, 1)
    If lnResult == 0
        RETURN .T.
    Else
        RETURN .F.
    ENDIF
   
ENDFUNC


上边的127.0.0.1改成任意文字,均返回.T.
2023-06-30 15:51
快速回复:如何快速判断SQL服务器是否开机
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023631 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved