以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQLserver数据库生成不重复的id编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158745)

--  作者:weibu
--  发布时间:2020/12/1 13:24:00
--  SQLserver数据库生成不重复的id编号
老师我用的是SQL数据库在表的DataRowAdding中添加下面代码,如果多人在客户端编辑,能确保代码不重复生产吗?
e.DataRow("departid") = "d"&e.DataRow("_Identify")

但是我这边测试的有重复生成的情况?请问如何规避

--  作者:有点蓝
--  发布时间:2020/12/1 13:46:00
--  
上面这种方式无法排除重复。参考这种用法:http://www.foxtable.com/webhelp/topics/3008.htm
--  作者:有点蓝
--  发布时间:2020/12/1 13:47:00
--  
或者到DataRowAdded事件

e.DataRow.save
e.DataRow("departid") = "d" & e.DataRow("_Identify")

--  作者:weibu
--  发布时间:2020/12/1 19:02:00
--  
谢谢老师,
我用sql数据库
下面是生成目录树的逻辑,老师这个是不是必须加载数据后才能生成。但加载速度比较慢。能否不加载,直接生成
For Each dr As DataRow In dt.datarows
    If dr("departid") = r("departid") Then
        nd = tr.Nodes.Add(dr("departid"),dr("departname"))
        Functions.Execute("AddChildren",nd)
    End If
Next

--  作者:有点蓝
--  发布时间:2020/12/1 20:15:00
--  
比如:http://www.foxtable.com/webhelp/topics/2900.htm
--  作者:weibu
--  发布时间:2020/12/1 23:30:00
--  
老师AddChildren函数修改后,这个函数生成的目录树部分不执行。没有从sql数据库调取生成目录树。如何修改?
Dim nd As WinForm.TreeNode = args(0)
Dim drs As List(of DataRow) = DataTables("department").SQLSelect("[parentid] = \'" & nd.name & "\'","order")
For Each dr As DataRow In drs
    Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("departid"),dr("departname"))
    Functions.Execute("AddChildren",cd)
Next

--  作者:weibu
--  发布时间:2020/12/1 23:52:00
--  
SQLSelect("[parentid] = \'" & nd.name & "\'",“”,"order")  去掉order可以执行
后面加上order就不执行。order是整数型。
这是为啥
[此贴子已经被作者于2020/12/2 0:05:32编辑过]

--  作者:有点蓝
--  发布时间:2020/12/2 8:28:00
--  

语法:

SQLSelect(Filter,Top,Sort)

Filter: 查询条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异
Top:    可选参数,指定返回的行数
Sort:   可选参数,指定查询顺序,和Top配合使用。


示例四

如果需要按顺序返回所有行,可以将Top参数设置为"",例如按日期顺序,返回所有产品为PD01的订单:

Dim drs As List(of DataRow
drs = 
DataTables("订单").SQLSelect("产品 = \'PD02\'","""日期 Desc")


--  作者:weibu
--  发布时间:2020/12/2 8:29:00
--  
Dim drs As List(of DataRow) = DataTables("department").SQLSelect("[parentid] = \'" & nd.name & "\'",“”"order")
老师这个sqlselect修改后的预计,用order顺序输出查询就是不执行。把order换成日期也执行。这可找不到问题了

--  作者:有点蓝
--  发布时间:2020/12/2 8:33:00
--  
.SQLSelect("[parentid] = \'" & nd.name & "\'", "", "order")