以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]关于动态加载的一段代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13167)

--  作者:sunjgjd
--  发布时间:2011/9/30 16:10:00
--  [讨论]关于动态加载的一段代码

在帮助里面,有关动态加载->父表与子表同步加载的说明中,有如下一段代码:

 

If DataTables("订单").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" \'不加载订单明细
Else
    Dim
ids As String
    For Each
dr As DataRow In DataTables("订单").DataRows
        ids = ids & "," & dr("订单ID")
    Next
    ids= ids.Trim(",")
    DataTables(
"订单明细").LoadFilter = "订单ID In (" & ids & ")"
End If
DataTables(
"订单明细").Load()

 

我不知道老大在写这段代码的时候,“订单ID”是基于字符串的还是数值的。下午我在写如上的一段代码时,发现假如“订单ID”是字符串值的话,ids = ids & "," & dr("订单ID") 这条语句是错误的,参考了SQL的IN参数,前面的这条语句应该写成:ids = ids & ",\'" & dr("订单ID") & "\'"

亦即帮助里的“加载条件为:订单ID In (1,2,6,7,8,9)”应该是“加载条件为:订单ID In (\'1\',\'2\',\'6\',\'7\',\'8\',\'9\')

 

不知是否正确?供参考


--  作者:lyq
--  发布时间:2011/9/30 16:46:00
--  

dim ids as string

If DataTables("订单").DataRows.Count = 0 Then \'如果订单表没有数据
    DataTables(
"订单明细").LoadFilter = "订单ID Is Null" \'不加载订单明细
Else
    For Each dr As DataRow In DataTables("订单").DataRows

       if ids="" then

          ids="\'" & dr("订单ID") & "\'" 

        else
         ids=ids & ",\'" & dr("订单ID") & "\'"

       end if
    Next

    ids="(" & ids & ")"
    DataTables(
"订单明细").LoadFilter = "订单ID In " & ids

    DataTables("订单明细").Load()
End If

[此贴子已经被作者于2011-9-30 16:49:50编辑过]