Foxtable(狐表)用户栏目专家坐堂 → [求助]程序连接SQL出错


  共有3270人关注过本帖树形打印复制链接

主题:[求助]程序连接SQL出错

帅哥哟,离线,有人找我吗?
kensou11111
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2359 威望:0 精华:0 注册:2011/4/25 9:23:00
[求助]程序连接SQL出错  发帖心情 Post By:2015/11/2 10:02:00 [只看该作者]

我做了一个ERP软件的小外挂程序,连接我这边的SQL服务器没问题,功能测试也一切正常。

但是将程序发到客户的电脑上,连接他们的服务器时就会有问题(每次打开程序要2-3分钟,进入后点击功能按钮报错),他们服务器是2008R2,SQL是2005,用户机则是WIN7 32位,报错如下

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151102092156.jpg
图片点击可在新窗口打开查看

button1的代码如下:

DataTables("comProduct").LoadFilter = "[ProdID] is not null"
DataTables("comProduct").Load
DataTables("ComProdLLC").LoadFilter = "[ProdID] is not null"
DataTables("ComProdLLC").Load
DataTables("ComUnitConver").LoadFilter = "[ProdID] is not null"
DataTables("ComUnitConver").Load

'自动生成单号
Dim max,DH As String
Dim ld1 As String = e.Form.Controls("前缀").value
Dim ld2 As String = e.Form.Controls("颜色码").value
Dim idx As Integer

If ld1 IsNot Nothing And ld2 IsNot Nothing Then
    max = DataTables("comProduct").SQLCompute("Max(ProdID)","ProdID LIKE '" & ld1 & ld2 & "%" & "'") '取得该类别的最大编号
    If max > "" Then '如果存在最大编号
        idx = CInt(max.Substring(ld1.Length + ld2.Length,8)) + 1 '获得最大编号的后四位顺序号,并加1
    Else
        idx = 1 '否则顺序号等于1
    End If
    DH = ld1 & ld2 & Format(idx,"00000000")
    
    E.Form.Controls("产品编号").value = DH
    E.Form.Controls("默认仓库").value = "001"
    
    Dim dr As DataRow
    dr = DataTables("仓库设定").SQLFind("WareHouseID = '001'")
    If dr IsNot Nothing Then '如果找到的话
        E.Form.Controls("仓库名称").value = dr("WareHouseName")
    End If
    
    E.Form.Controls("产品形态").value = 2
    E.Form.Controls("形态名称").value = "半成品"
    
Else
    MessageBox.Show("请先选择前缀和颜色码", "提示")
End If
[此贴子已经被作者于2015/11/2 10:12:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kensou11111
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2359 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2015/11/2 11:25:00 [只看该作者]

有没有高人帮忙分析一下啊?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/2 11:29:00 [只看该作者]

出错应该在这里 idx = CInt(max.Substring(ld1.Length + ld2.Length,8)) + 1 '获得最大编号的后四位顺序号,并加1

 

确认客户数据库的这个字段返回值的长度足够


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/2 12:18:00 [只看该作者]

加入msgbox看看

 

msgbox(max)

msgbox(max.length)

idx = CInt(max.Substring(ld1.Length + ld2.Length,8)) + 1 '获得最大编号的后四位顺序号,并加1

 

 


 回到顶部