Foxtable(狐表)用户栏目专家坐堂 → 请教,关于SQL查询表的分页的问题【已解决】


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

主题:请教,关于SQL查询表的分页的问题【已解决】

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
请教,关于SQL查询表的分页的问题【已解决】  发帖心情 Post By:2013/2/24 11:05:00 [只看该作者]

在窗体中建立了一个SQLQuery型的table,然后在窗体的afterload事件里用FILL的方法从两张表里取数据生成查询数据

我想用按钮做分页控制(首页,上一页,下一页,总行数),另外用一个lable来显示这张查询表的总行数和总页数,这个要如何做呢?给个思路就好

我现在的做法是先FILL,然后用table.datatable来loadTOP等分页,但是只能显示第一页的数据,正确合理的方式应该是怎么样呢?以下是我的代码

 

Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count
Tables("测试_table1").Fill("Select 简称,{供应商资料表}.代码,名称,交易币种,结款条件,税率,地址,{供应商资料表}.电话,传真,Email,Website,简介,登记人,登记时间,联系人,职务,{供应商联络人}.电话 As [联系方式] From {供应商资料表} Inner JOIN {供应商联络人} ON {供应商联络人}.[代码] = {供应商资料表}.[代码]","ERP",True)
With Tables("测试_Table1").DataTable
    .LoadFilter = ""
    .LoadTop = 15
    .LoadPage = 0
    .Load()
    e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage+1 & "]页,共[" & i & "]行数据"
End With

页数和数据行数都显示不对..

==================================================================

感谢小林的指导,问题得到解决,因为目前FOX还不支持查询表的分页,只有曲线救国,高手就路过当看个笑话好了,一直索取,贡献一下如我一样没有任何程序基础又在苦苦学习FOX的人...

解决思路:

在SQL数据库里建立一个表视图,视图名为“供应商查询”,表视图的建立请百度..值得注意的是建立连接字段的时候,如果是用FOX建立的外部表的话,会自动把_Identify设置为连接字段,想修改的话要把主表的连接字段拖动到子表去(这里我卡了一中午,汗!)

后续代码如下:

 

Tables("测试_table1").DataTable.fill("Select * From {供应商查询表}","ERP",True)
Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count
With Tables("测试_Table1").DataTable
    .LoadFilter = ""
    .LoadTop = 15
    .LoadPage = 0
    .Load()
    e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage + 1 & "]页,共[" & i & "]行数据"
End With

 

上下页控制的话,i的值还是要用要用sqlcommand的命令去取得,我这个是在afterload里写的,就没改了

OVER

[此贴子已经被作者于2013-2-25 13:39:35编辑过]

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/2/24 12:37:00 [只看该作者]

顶起...

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/25 9:42:00 [只看该作者]

 查询字段加入_Identify,代码如下。

Tables(" 测试_table1").Fill("Select
{供应商联络人}.[_Identify],简称,{供应商资料表}.代码,名称,交易币种,结款条件,税率,地址,{供应商资料表}.电话,传真,Email,Website,简介,登记人,登记 时间,联系人,职务,{供应商联络人}.电话 As [联系方式] From {供应商资料表} Inner JOIN {供应商联络人} ON {供应商联络人}.[代码] = {供应商资料表}.[代码]","ERP",True)

Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count
With Tables("测试_Table1").DataTable
    .LoadFilter = ""
    .LoadTop = 15
    .LoadPage = 0
    .Load()
    e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage+1 & "]页,共[" & i & "]行数据"
End With


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


加好友 发短信
等级:婴狐 帖子:85 积分:625 威望:0 精华:0 注册:2012/11/27 11:00:00
  发帖心情 Post By:2013/2/25 10:06:00 [只看该作者]

以下是引用lin_hailun在2013-2-25 9:42:00的发言:
 查询字段加入_Identify,代码如下。

Tables(" 测试_table1").Fill("Select
{供应商联络人}.[_Identify],简称,{供应商资料表}.代码,名称,交易币种,结款条件,税率,地址,{供应商资料表}.电话,传真,Email,Website,简介,登记人,登记 时间,联系人,职务,{供应商联络人}.电话 As [联系方式] From {供应商资料表} Inner JOIN {供应商联络人} ON {供应商联络人}.[代码] = {供应商资料表}.[代码]","ERP",True)

Dim i As Integer =Tables("测试_table1").DataTable.DataRows.Count
With Tables("测试_Table1").DataTable
    .LoadFilter = ""
    .LoadTop = 15
    .LoadPage = 0
    .Load()
    e.Form.Controls("页码信息").Text= "共[" & .TotalPages & "] 页 ,当前为第[" & .LoadPage+1 & "]页,共[" & i & "]行数据"
End With

这个貌似只是查Access,如果查SQL Server呢?SQL Server没有定义_Identify字段,只定义了id字段作为主键。


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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/2/25 10:14:00 [只看该作者]

列名 '_Identify' 不明确。

原因和楼上说的是一样吧,昨天我查遍了论坛,貌似是说要分页的话SQL表里必须有主键,可这个表我是在FOXTABLE里建立到我的SQL数据库里的啊,应该有_Identify的啊


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/2/25 11:38:00 [只看该作者]

 这个是狐表的一个缺陷。最好能支持查询表分页咯。要改一下内部合成的sql语句了。

 目前的话,楼主去数据库做一个视图吧,然后像表一样弄进来。

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


加好友 发短信
等级:幼狐 帖子:186 积分:1294 威望:0 精华:0 注册:2011/8/17 17:29:00
  发帖心情 Post By:2013/2/25 13:40:00 [只看该作者]

问题解决,鸣谢小林,UP

 回到顶部