Foxtable(狐表)用户栏目专家坐堂 → [求助]'Row_Number'不是可以识别的函数名(已解决)


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

主题:[求助]'Row_Number'不是可以识别的函数名(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]'Row_Number'不是可以识别的函数名(已解决)  发帖心情 Post By:2017/2/20 10:14:00 [只看该作者]

下面是分页加载查询表的内部函数"LoadData"的代码,在生成本地数据库和部分远程数据库的查询表时运行正常,但是在运行其中一个远程数据库时,出现'Row_Number'不是可以识别的函数名的出错提示,而该数据库用QueryBuilder可以生成查询表。
1、为什么这个远程数据库不能识别'Row_Number'函数。
2、有什么方法可以实现同样的效果。
请各位老师指教,谢谢!!

代码
Dim SJY As String = RibbonTabs("表结构").Groups("数据源").Items("数据源").Text
Dim bm As String = Tables(SJY).Current("表名")
Dim zj As String = Tables(SJY).Current("主键")
Dim r1 As Integer = (Page - 1) * 100 + 1
Dim r2 As Integer = Page * 100
Dim q As new QueryBuilder
q.TableName = bm
q.C onnectionName = SJY
q.SelectString = "Select * Fro m (Select Row_Number() Over(Order by "& zj &") As RowNum, * fro m "& bm &") As a Where RowNum >= "& r1 &" And RowNum <= "& r2
q.Build
DataTables(bm).Save()
MainTable = Tables(bm)
Tables(bm).AutoSizeCols()

截图

图片点击可在新窗口打开查看此主题相关图片如下:捕获1.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/2/20 13:11:44编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/20 10:19:00 [只看该作者]

 如果是低于sql2005的数据库,是不支持这个函数的。

 

 那种情况,就只能用传统方式分页处理 http://blog.csdn.net/qiaqia609/article/details/41445233

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/20 10:23:00 [只看该作者]

 如果你的数据库是2005以上的,那你就是连接了2000的实例,导致找不到函数。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/2/20 10:25:00 [只看该作者]

好的,谢谢指教!!

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/2/20 13:11:00 [只看该作者]

出错的远程数据库是SQL Server 2000版本,代码修改后,问题解决。再次感谢有点色老师的热情指教!!

Dim SJY As String = RibbonTabs("表结构").Groups("数据源").Items("数据源").Text
Dim bm As String = Tables(SJY).Current("表名")
Dim zj As String = Tables(SJY).Current("主键")
Dim r As Integer = (Page - 1) * 100
Dim q As new QueryBuilder
q.TableName = bm
q.C onnectionName = SJY
q.SelectString = "select top 100 * fro m "& bm &" where "& zj &" > (Select isnull(max("& zj &"),0) fro m (Select top "& r &" "& zj &" fro m "& bm &" order by "& zj &") A ) order by "& zj &""
q.Build
DataTables(bm).Save()
MainTable = Tables(bm)
Tables(bm).AutoSizeCols()


 回到顶部