以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据链接不上计划任务停止  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48998)

--  作者:lshshlxsh
--  发布时间:2014/4/10 14:01:00
--  [求助]数据链接不上计划任务停止

Dim xinxj As String = "Provider=SQLOLEDB;Password=1UmeLz2Qy4KX;Persist Security Info=True;User ID=OpenMas8020005;Initial Catalog=OpenMas;Data Source=111.1.2.106,1433\\SQLEXPRESS"

\'\'\'取接收表第一条内容
If Forms("处理数据").Opened = False Then
    If Connections.Contains("xinxj") = True    \'\'\'\'存在XINXJ数据源
        connections.Delete("xinxj")                 \'\'\'\'\'\'\'\'删除数据源
    End If   
    If Connections.TryConnect(xinxj) = False Then      \'\'\'\'\'\'并且数据源无法链接
        Forms("数据源无法链接").open
    Else                                               \'\'\'\'\'\'则建立数据源
       
        Connections.Add("xinxj",xinxj)
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "select top 1 * from Com_SmsIn_db8020005"
        dt = cmd.ExecuteReader()
        \'\'\'取接收表第一条内容
        If dt.DataRows.Count =1 Then
            Forms("处理数据").open
        End If
    End If
End If

 

 

 

以上是计划管理的代码

请问一下为什么数据连接不上的时候计划管理不起作用了?是不是少了什么条件没考虑进去???


--  作者:Bin
--  发布时间:2014/4/10 14:03:00
--  
没有执行  Forms("数据源无法链接").open 这句代码是吗?  那只能是条件不成立.
   

--  作者:lshshlxsh
--  发布时间:2014/4/10 14:08:00
--  
是的,这个窗口也有能执行的时候,并不是每次都不能打开。计划管理是30S一次。错误截图如下:图片点击可在新窗口打开查看
[此贴子已经被作者于2014-4-10 14:10:58编辑过]

--  作者:Bin
--  发布时间:2014/4/10 14:14:00
--  
用计时器 测试了一下如下代码,没有问题.



Dim xinxj As String = "Provider=SQLOLEDB;Password=1UmeLz2Qy4KX;Persist Security Info=True;User ID=OpenMas8020005;Initial Catalog=OpenMas;Data Source=111.1.2.106,1433\\SQLEXPRESS"
If Connections.TryConnect(xinxj) = False Then
   MessageBox.show("不能连接")
Else
  MessageBox.show("能连接")
End If

你上个例子看看.

--  作者:Bin
--  发布时间:2014/4/10 14:14:00
--  
但是你用计时器执行这个,怎么样都不科学吧.  还会阻塞进程.
--  作者:bobolan521
--  发布时间:2014/4/10 14:15:00
--  
那这个该怎么办呢?
--  作者:lshshlxsh
--  发布时间:2014/4/10 14:20:00
--  
例子我们已经做了,也正在使用着了,但是不知道在什么情况下会报错。报错后程序就死掉,要重新打开才能使用
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信息机服务201404101415.rar

图片点击可在新窗口打开查看
[此贴子已经被作者于2014-4-10 14:40:09编辑过]

--  作者:bobolan521
--  发布时间:2014/4/10 14:22:00
--  
因为要定时去查询数据库是否有数据,如果用计划管理不科学,请问该用什么样的方式去操作
--  作者:Bin
--  发布时间:2014/4/10 14:39:00
--  
你的例子,运行到现在目前还没发现这个错误.
--  作者:有点酸
--  发布时间:2014/4/10 14:40:00
--  

你代码不严谨而已吧,改为这样看看:

 

Dim xinxj As String = "Provider=SQLOLEDB;Password=1UmeLz2Qy4KX;Persist Security Info=True;User ID=OpenMas8020005;Initial Catalog=OpenMas;Data Source=111.1.2.106,1433\\SQLEXPRESS"
If Forms("处理数据").Opened = False Then
    If Connections.Contains("xinxj") = False
        Connections.Add("xinxj",xinxj)
    End If
    If Connections.TryConnect(xinxj) = False Then      \'\'\'\'
        Forms("数据源无法链接").open
    Else                                               \'\'\'
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "select top 1 * from Com_SmsIn_db8020005"
        dt = cmd.ExecuteReader()
        \'\'\'取接收表第一条内容
        If dt.DataRows.Count =1 Then
            Forms("处理数据").open
        End If
    End If
End If

 

实在不行,就:

http://www.foxtable.com/help/topics/2070.htm

 

[此贴子已经被作者于2014-4-10 14:43:19编辑过]