Foxtable(狐表)用户栏目专家坐堂 → 重大问题:多个基表无法进行分页加载?


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

主题:重大问题:多个基表无法进行分页加载?

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
重大问题:多个基表无法进行分页加载?  发帖心情 Post By:2014/3/17 21:27:00 [只看该作者]

各位老师好,

 

我把这段select语句:

 

SELECT rjsytVIP消费信息.VIP客户名称 AS "rjsytVIP消费信息 VIP客户名称", rjsytVIP消费信息.VIP卡号 AS "rjsytVIP消费信息 VIP卡号", rjsytVIP基本信息.移动电话 AS "rjsytVIP基本信息 移动电话", rjsytVIP消费信息.消费日期 AS "rjsytVIP消费信息 消费日期"
FROM (dbo.rjsytVIP消费信息 AS rjsytVIP消费信息
     INNER JOIN dbo.rjsytVIP基本信息 AS rjsytVIP基本信息 ON (rjsytVIP基本信息.卡号 = rjsytVIP消费信息.VIP卡号 ))
where rjsytVIP消费信息._Identify Is Null

 

放入狐表的CaseStudy里的 分页加载  学习项目里,

当然是已经有链接外部数据源了,

表类型选择SQLTable 应用窗口后 提示:

“对于多个基表不支持动态SQL生成 ”
 
表类型选择为 SQLQuery 应用窗口后,
是有显示窗口和数据,但是 下一页、上一页、最末页 按钮无效。
 
我把select语句改为 SELECT * from {rjsytVIP消费信息} where rjsytVIP消费信息._Identify Is Null
 
可以分页加载。
 
 
 
是不是有多个基表就无法实现 分页加载呢?  如果是这样的话,要怎么解决呢。。。。
 

 


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/17 22:13:00 [只看该作者]

已经找到解决方法:

 

http://www.foxtable.com/help/index.html?n=2721.htm


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/18 10:13:00 [只看该作者]

各位老师好,

 

我照着帮助这样做了,不知道哪里出了问题:

 

这是 “增加一个查询表”的代码:

 

Select * From (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum,rjsytVIP消费信息.VIP客户名称 AS "rjsytVIP消费信息 VIP客户名称", rjsytVIP基本信息.归属门店代号 AS "rjsytVIP基本信息 归属门店代号"
FROM (dbo.rjsytVIP消费信息 AS rjsytVIP消费信息
     INNER JOIN dbo.rjsytVIP基本信息 AS rjsytVIP基本信息 ON (rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify ))) As a Where RowNum >= 1 And RowNum <= 10

 

没有问题,应用窗口可以显示表!

 

这是“增加一个自定义函数,函数名为LoadData”的代码:

 

Dim r1 As Integer = (Page - 1) * 10 + 1
Dim r2 As Integer = Page * 10
Dim sql As String
sql = "Select * From (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum, ,rjsytVIP消费信息.VIP客户名称 As "rjsytVIP消费信息 VIP客户名称", rjsytVIP基本信息.归属门店代号 As "rjsytVIP基本信息 归属门店代号" _
& "FROM (dbo.rjsytVIP消费信息 As rjsytVIP消费信息"_
& " INNER JOIN dbo.rjsytVIP基本信息 As rjsytVIP基本信息 ON (rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify ))_  As a "
sql = sql & " Where RowNum >= " & r1 & " And RowNum <= " & r2
DataTables("VIP消费信息_VIP消费信息").SQLLoad(sql)

 

提示错误:

(Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum, ,rjsytVIP消费信息.VIP客户名称 As "rjsytVIP消费信息 VIP客户名称", rjsytVIP基本信息.归属门店代号 As "rjsytVIP基本信息 归属门店代号" _       应为语句结束


 

 

[此贴子已经被作者于2014-3-18 10:14:36编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/18 10:25:00 [只看该作者]

不能用双引号. 重命名不需要引号的.

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/18 10:42:00 [只看该作者]

Bin 老师,重命名用引号没有问题,在窗口表可以有效查询出来。

 

Bin老师,

 

“增加自定义函数,函数名为LoadData”的代码中:

 

Dim r1 As Integer = (Page - 1) * 10 + 1
Dim r2 As Integer = Page * 10
Dim sql As String

 

Dim r1 As Integer = (Page - 1) * 50 + 1
 Dim
r2 As Integer = Page * 50
 Dim
sql As String
 sql
= "Select * From (Select Row_Number() Over(Order by [订单ID]) As RowNum, * from 订单) As a "
 sql
= sql & " Where RowNum >= " & r1 & " And RowNum <= " & r2
 DataTables
(
"
订单").SQLLoad(sql)

 

 sql = "Select * From (Select Row_Number() Over(Order by [订单ID]) As RowNum, * from 订单) As a "    这句要是多表查询的语句,格式是怎么样的呢?

 

比如多表查询的语句为:

 

Select * From (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum,rjsytVIP消费信息.VIP客户名称 AS "rjsytVIP消费信息 VIP客户名称", rjsytVIP基本信息.归属门店代号 AS "rjsytVIP基本信息 归属门店代号"
FROM (dbo.rjsytVIP消费信息 AS rjsytVIP消费信息
     INNER JOIN dbo.rjsytVIP基本信息 AS rjsytVIP基本信息 ON (rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify ))) As a Where RowNum >= 1 And RowNum <= 10

 

 

我尝试着这样写, 

sql = "Select * From (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum, ,rjsytVIP消费信息.VIP客户名称 As "rjsytVIP消费信息 VIP客户名称", rjsytVIP基本信息.归属门店代号 As "rjsytVIP基本信息 归属门店代号" _
& "FROM (dbo.rjsytVIP消费信息 As rjsytVIP消费信息"_
& " INNER JOIN dbo.rjsytVIP基本信息 As rjsytVIP基本信息 ON (rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify ))_  As a "
sql = sql & " Where RowNum >= " & r1 & " And RowNum <= " & r2
DataTables("VIP消费信息_VIP消费信息").SQLLoad(sql)

 

不过没有效果。

[此贴子已经被作者于2014-3-18 10:42:10编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/18 10:44:00 [只看该作者]

双引号是没必要的, 而且在字符串里用双引号  2个才会转换为一个.

例如  As ""rjsytVIP消费信息 VIP客户名称""

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/18 10:48:00 [只看该作者]

我知道,Bin 老师,我去掉双引号之后也是一样不行。

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/18 10:48:00 [只看该作者]

上例子.

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/18 11:05:00 [只看该作者]

是不是有外部数据源就不让传啊,上传老是提示出错

 

Microsoft OLE DB Provider for SQL Server 错误 '80040e57'


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/18 11:06:00 [只看该作者]

楼主先学一下sql语句吧:

http://www.foxtable.com/help/topics/0688.htm

 

不改列名,用那么多as做啥?

 

Dim sql As String = "Select * (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum, ,rjsytVIP消费信息.VIP客户名称 , rjsytVIP基本信息.归属门店代号 "
sql = sql & "FROM dbo.rjsytVIP消费信息 INNER JOIN dbo.rjsytVIP基本信息  ON rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify)"
sql = sql & " Where RowNum >= " & r1 & " And RowNum <= " & r2
DataTables("VIP消费信息_VIP消费信息").SQLLoad(sql)


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