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


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

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

帅哥哟,离线,有人找我吗?
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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'


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/3/18 12:18:00 [显示全部帖子]

恩恩。谢谢狐爸。现在终于知道了 合成语句是这样写的。

我在内部函数是这样写:

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

Dim sql As String = "Select * from (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
MessageBox.Show(sql)

DataTables("VIP消费信息_VIP消费信息").SQLLoad(sql)

 

出现了问题:

提示错误:

.NET Framework 版本:2.0.50727.5472
Foxtable 版本:2014.3.8.1
错误所在事件:加载[VIP消费信息_VIP消费信息]失败!
详细错误信息:
关键字 'Where' 附近有语法错误。

 

 

调试出来的语句为:

 

---------------------------

---------------------------
Select * from (Select Row_Number() Over(Order by rjsytVIP消费信息._Identify) As RowNum,rjsytVIP消费信息.VIP客户名称 , rjsytVIP基本信息.归属门店代号 FROM dbo.rjsytVIP消费信息 INNER JOIN dbo.rjsytVIP基本信息  ON rjsytVIP基本信息._Identify = rjsytVIP消费信息._Identify) Where RowNum >= 11 And RowNum <= 20
---------------------------
确定  
---------------------------

 

 

 

我[VIP消费信息_VIP消费信息]的代码是:

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

 

是哪里错了呢。。。。

[此贴子已经被作者于2014-3-18 12:55:21编辑过]

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


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

已经解决!!!少了  As a 。

 

谢谢各位老师!!

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

 回到顶部