以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 求助:死循环了 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44218)
|
-- 作者:晕了快扶我
-- 发布时间:2013/12/25 17:05:00
-- 求助:死循环了
提示是\'编码表\'无效
Dim tb As Table = args(0) \'要操作的表 Dim dr As DataRow Dim cmd1 As new SQLCommand Dim cmd2 As New SQLCommand Dim Key As Integer cmd1.C cmd2.C cmd1.CommandText = "Select Count(*) From {编码表} Where [表名] = \'" & tb.Name & "\'" cmd1.commandText = "Select [顺序号] From {编码表} Where [表名]=\'" & tb.Name & "\'" Do Key = cmd1.ExecuteScalar() \'从后台获得顺序号 cmd2.commandText = "Update {编码表} Set [顺序号] = " & (Key + 1) & " Where [表名] = \'" & tb.Name & "\'" If cmd2.ExecuteNonQuery() > 0 Then \'更新顺序号 Exit Do \'更新成功则退出循环 End If Loop Dim d As Boolean cmd1.CommandText = "Select [日期] From {编码表} Where [表名]=\'" & tb.Name & "\'" d = cmd1.ExecuteScalar If d = 0 \'________________前缀提取_______________ cmd1.commandText = "Select [前缀] From {编码表} Where [表名]=\'" & tb.Name & "\'" Return cmd1.ExecuteScalar() & Format(Key,"0000") Else cmd1.commandText = "Select [前缀] From {编码表} Where [表名]=\'" & tb.Name & "\'" Return cmd1.ExecuteScalar() & Format(Date.Today,"yyyyMMdd") & Format(Key,"0000") End If
|
-- 作者:Bin
-- 发布时间:2013/12/25 17:09:00
--
无法更新当然会死循环, 建议不要这样做, 而是采取循环10次的方法,10次都过不了就放弃吧
|
-- 作者:晕了快扶我
-- 发布时间:2013/12/25 17:13:00
--
以下是引用Bin在2013-12-25 17:09:00的发言: 无法更新当然会死循环, 建议不要这样做, 而是采取循环10次的方法,10次都过不了就放弃吧
对象名 \'编码表\' 无效。
提示是这个啊
|
-- 作者:Bin
-- 发布时间:2013/12/25 17:14:00
--
外部数据源请指定数据源名称.
|
-- 作者:晕了快扶我
-- 发布时间:2013/12/25 17:14:00
--
以下是引用Bin在2013-12-25 17:14:00的发言: 外部数据源请指定数据源名称.
有的,指定了,论坛有BUG贴不出来而已
|
-- 作者:Bin
-- 发布时间:2013/12/25 17:21:00
--
那就检查一下表名
|
-- 作者:逛逛
-- 发布时间:2013/12/25 17:35:00
--
你在Do 前面少一个判断吧
输入的表名是否存在?
|
-- 作者:晕了快扶我
-- 发布时间:2013/12/25 17:37:00
--
此主题相关图片如下:qq图片20131225173552.jpg
百思不得其解..重新修改了下代码,去掉了对日期的判断,还是这样
Dim tb As Table = args(0) \'要操作的表 Dim dr As DataRow Dim cmd1 As new SQLCommand Dim cmd2 As New SQLCommand Dim Key As Integer cmd1.C cmd2.C cmd1.CommandText = "Select Count(*) From {编码表} Where [表名] = \'" & tb.Name & "\'" cmd1.commandText = "Select [顺序号] From {编码表} Where [表名]=\'" & tb.Name & "\'" Do Key = cmd1.ExecuteScalar() \'从后台获得顺序号 cmd2.commandText = "Update {编码表} Set [顺序号] = " & (Key + 1) & " Where [表名] = \'" & tb.Name & "\'" If cmd2.ExecuteNonQuery() > 0 Then \'更新顺序号 Exit Do \'更新成功则退出循环 End If Loop \'________________前缀提取_______________ cmd1.commandText = "Select [前缀] From {编码表} Where [表名]=\'" & tb.Name & "\'" Return cmd1.ExecuteScalar() & Format(Date.Today,"yyyyMMdd") & Format(Key,"0000")
|
-- 作者:Bin
-- 发布时间:2013/12/25 17:42:00
--
检查一下你是否有编码表这个表,表名是否正确.
|
-- 作者:晕了快扶我
-- 发布时间:2013/12/25 17:43:00
--
以下是引用Bin在2013-12-25 17:42:00的发言: 检查一下你是否有编码表这个表,表名是否正确.
明白了,我用了2个数据源
|