以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  BeforeLoadOuterTable 中的用户问题?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12680)

--  作者:shixia
--  发布时间:2011/9/11 11:57:00
--  BeforeLoadOuterTable 中的用户问题?

BeforeLoadOuterTable

普通用户可以忽略本事件。
准备加载外部数据表的时候执行,可以在此修改Select语句,这样不仅可以只加载需要的字段和数据,甚至可以从另一个数据表中加载数据。
如果数据量很大,可以通过用此事件设置条件,只加载部分数据,甚至不加载数据,在运行的过程中根据条件动态加载数据。
有关动态加载数据,会有专门的章节介绍。


e参数属性:

DataTableName: 正在加载的数据表名称
SelectString: Select语句
User: 登录用户

 

在该事件中适用外部数据源中自定义的用户_UserName 吗?


--  作者:狐狸爸爸
--  发布时间:2011/9/11 12:24:00
--  
不可以,因为此时表还没有加载。
--  作者:shixia
--  发布时间:2011/9/11 14:00:00
--  

这个时候变量_UserName 有效吗?下面的代码能执行吗?

   Dim ld As String
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Select Group From {_Users} Where Name = \'" & _UserName  & "\'"
    ld = cmd.ExecuteScalar()
    If ld="用户"  Then
        e.SelectString = "Select * From {表A} where 列一=False"       
    Else
        e.SelectString = "Select * From {表A}"
    End If

[此贴子已经被作者于2011-9-11 14:04:25编辑过]

--  作者:shixia
--  发布时间:2011/9/11 17:30:00
--  
??
--  作者:狐狸爸爸
--  发布时间:2011/9/11 17:34:00
--  
没有_UserName 变量的,所以此路不通。