Foxtable(狐表)用户栏目专家坐堂 → SQL外部数据源动态加载新问题


  共有19002人关注过本帖树形打印复制链接

主题:SQL外部数据源动态加载新问题

帅哥哟,离线,有人找我吗?
woodiy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
SQL外部数据源动态加载新问题  发帖心情 Post By:2009/6/1 16:10:00 [只看该作者]

利用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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/1 16:19:00 [只看该作者]

帮助上看到的 增加外部数据表 加载100条记录。

 回到顶部
帅哥哟,离线,有人找我吗?
woodiy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By:2009/6/1 16:29:00 [只看该作者]

以下是引用mr725在2009-6-1 16:19:00的发言:
帮助上看到的 增加外部数据表 加载100条记录。


这样不行的。


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/1 16:34:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
woodiy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By:2009/6/2 8:47:00 [只看该作者]

不行的,没有用的!


 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/6/2 9:06:00 [只看该作者]

增加外部数据表

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

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

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

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

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

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



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


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/2 9:14:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By: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范围,加载这个指定范围的记录,这样较为灵活,当然工作量也就多点。


能否提供一些事例呢!


 回到顶部
总数 14 1 2 下一页