以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLLoad加载的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33008)

--  作者:zpx_2012
--  发布时间:2013/5/11 20:27:00
--  SQLLoad加载的问题

sqltable在窗口的页面集合内用sqlLoad加载就提示如下错误,若将sqltable从页面集合移出直接到窗口下面来

(即不要在页面集合里面)就可以,是什么原因?

 


图片点击可在新窗口打开查看此主题相关图片如下:a1.jpg
图片点击可在新窗口打开查看

 

就是用帮助中的那个SqlLoad代码

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 拜访计划编号) As RowNum, * from " & Fn & ") As a "
sql = sql & " Where RowNum >= " & r1 & " And RowNum <= " & r2
DataTables("客户拜访计划_Table1").SQLLoad(sql)

 

谢谢!


 

[此贴子已经被作者于2013-5-15 16:51:36编辑过]

--  作者:zpx_2012
--  发布时间:2013/5/14 9:59:00
--  

谢谢muhua,按你的方式修改了还是出错,上传了一个例子,请帮忙看一下。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sql加载问题.foxdb


--  作者:狐狸爸爸
--  发布时间:2013/5/14 10:07:00
--  
SQl Server才有这个 Row_Number()
--  作者:zpx_2012
--  发布时间:2013/5/14 10:37:00
--  

我用的就是SQL的数据库做为外部数据源的,看来上传的例子没有用了。主要问题就是1楼所述

我的操作方式是:

1、在窗口分区面板内的SQLtable中先使用了如下的sql语句(不加载任何数据) 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20130514102325299.jpg
图片点击可在新窗口打开查看

目的是这样就可以方便的设置显示列了;(如果这里直接用加载第一页的代码也不会出错

2、在窗口的afterload中用如下代码加载第一页

Page = 1
Functions.Execute("LoadData") ‘函数是按帮助中写的如1楼那样。

打开窗口或按上下页的加载按钮就出那样的问题了。

 

完全相同的代码如果把SQLtable从分区面板内移动到外面直接在窗口下面来就不会出错(但这样满足不了需求)。


 

[此贴子已经被作者于2013-5-14 10:38:10编辑过]

--  作者:qhczy
--  发布时间:2013/5/14 10:44:00
--  

SQL语句不规范

 


--  作者:qhczy
--  发布时间:2013/5/14 10:46:00
--  
Select * From (Select Row_Number() Over(Order by 月份) As RowNum, * from " & Fn & ")  As a where RowNum >= " & r1 & " And RowNum <= " & r2

--  作者:zpx_2012
--  发布时间:2013/5/14 10:47:00
--  
哪里不规范?都是按帮助里面的写的啊
--  作者:qhczy
--  发布时间:2013/5/14 10:51:00
--  

你的SQL版本如果是2005以上的,你试试下述代码

 

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 月份) As RowNum, * from " & Fn & ")  As a where RowNum >= " & r1 & " And RowNum <= " & r2 "
DataTables("客户拜访计划_Table1").SQLLoad(sql)


--  作者:qhczy
--  发布时间:2013/5/14 10:53:00
--  

...

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 拜访计划编号) As RowNum, * from " & Fn & ")  As a where RowNum >= " & r1 & " And RowNum <= " & r2 "
DataTables("客户拜访计划_Table1").SQLLoad(sql)


--  作者:zpx_2012
--  发布时间:2013/5/14 11:10:00
--  

谢谢,我就是用SQL2005的,而且你写的代码和我现在用的是一样的啊,见1楼,

只是分成两段而已,没什么不同啊