以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]'Row_Number'不是可以识别的函数名(已解决) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96399) |
-- 作者:yyzlxc -- 发布时间:2017/2/20 10:14:00 -- [求助]'Row_Number'不是可以识别的函数名(已解决) 下面是分页加载查询表的内部函数"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() 截图
[此贴子已经被作者于2017/2/20 13:11:44编辑过]
|
-- 作者:有点色 -- 发布时间:2017/2/20 10:19:00 -- 如果是低于sql2005的数据库,是不支持这个函数的。
那种情况,就只能用传统方式分页处理 http://blog.csdn.net/qiaqia609/article/details/41445233
|
-- 作者:有点色 -- 发布时间:2017/2/20 10:23:00 -- 如果你的数据库是2005以上的,那你就是连接了2000的实例,导致找不到函数。 |
-- 作者:yyzlxc -- 发布时间:2017/2/20 10:25:00 -- 好的,谢谢指教!! |
-- 作者:yyzlxc -- 发布时间: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() |