以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQL外部数据源动态加载新问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2980)

--  作者:woodiy
--  发布时间:2009/6/1 16:10:00
--  SQL外部数据源动态加载新问题
利用SQL作为外部数据源,为了有效提高项目的打开速度,在项目属性的BeforeLoadOuterTable设置如下代码来控制载入外部数据表,而不加载外部数据记录:

If e.DataTableName = "通讯往来" AndAlso e.User.Name = "开发者" Then    ’我还没有设置登录用户
e.SelectString = "Select * From [通讯往来] Where ID=\'0\'"            ‘ID 为SQL表的关键字段
End If

然后在需要加载的时候,可以用按钮或是菜单的Chick事件来加载

DataTables("通讯往来").LoadFilter = "[ID] <> \'0\' ORDER BY ID DESC "   \'通过ID来排序。
DataTables("通讯往来").Load() 
 
现在有一个新的问题,如果数据比较多,我只想加载100条记录,又该如何设置呢?
--  作者:mr725
--  发布时间:2009/6/1 16:19:00
--  
帮助上看到的 增加外部数据表 加载100条记录。
--  作者:woodiy
--  发布时间:2009/6/1 16:29:00
--  
以下是引用mr725在2009-6-1 16:19:00的发言:
帮助上看到的 增加外部数据表 加载100条记录。


这样不行的。


--  作者:yangming
--  发布时间:2009/6/1 16:34:00
--  

直接在外部数据表中可以设置加载的行数


--  作者:woodiy
--  发布时间:2009/6/2 8:47:00
--  

不行的,没有用的!


--  作者:yangming
--  发布时间:2009/6/2 9:06:00
--  

增加外部数据表

1、在管理项目功能区,单击下面的按钮:

图片点击可在新窗口打开查看

2、出现外部数据表设置窗口:

图片点击可在新窗口打开查看

3、首先选择数据源和数据表,然后设置加载的行数或百分比,以及加载那些列;在“过滤/排序”页,可以设置加载条件,以及排序方式;通常只需选择数据源和数据表即可。

4、单击“确定”按钮,输入数据表在Foxtable中显示的表名即可



在最多加载行数  选项也不行?


--  作者:mr725
--  发布时间:2009/6/2 9:14:00
--  

看来,你得给大家一个实例了~ 我不太熟悉外部表的,但论坛有人会~


--  作者:狐狸爸爸
--  发布时间:2009/6/2 9:42:00
--  
只需改一个地方:

If e.DataTableName = "通讯往来" AndAlso e.User.Name = "开发者" Then    ’我还没有设置登录用户
e.SelectString = "Select Top 100 From [通讯往来] Where ID=\'0\'"            ‘ID 为SQL表的关键字段
End If

不过这样每次都只能加载100了,不太灵活。

另一个思路是让用户输入ID范围,加载这个指定范围的记录,这样较为灵活,当然工作量也就多点。

--  作者:yangming
--  发布时间:2009/6/2 9:58:00
--  
贺老师,如果做在按钮中,来加载100行,下面的代码对吗?

Dim i As Integer

For
i = 1 to 100
   
DataTables("通讯往来").LoadFilter = "[ID] <> \'0\' ORDER BY ID DESC "   \'通过ID来排序。
DataTables("通讯往来").DataRows(i).Load() 
Next

--  作者:woodiy
--  发布时间:2009/6/3 9:29:00
--  
以下是引用狐狸爸爸在2009-6-2 9:42:00的发言:
只需改一个地方:

If e.DataTableName = "通讯往来" AndAlso e.User.Name = "开发者" Then    ’我还没有设置登录用户
e.SelectString = "Select Top 100 From [通讯往来] Where ID=\'0\'"            ‘ID 为SQL表的关键字段
End If

不过这样每次都只能加载100了,不太灵活。

另一个思路是让用户输入ID范围,加载这个指定范围的记录,这样较为灵活,当然工作量也就多点。


能否提供一些事例呢!