PB dw_main.Retrieve(),为什么返回值是-1,但是我又能查出数据呢。 100
做了的DW。dw_main.Retrieve()返回-1。但是datawindow照样显示出查出的数据。。。A=dw_main.Retrieve(),a=-1的。。它返回...
做了的DW。dw_main.Retrieve()返回-1。但是datawindow照样显示出查出的数据。。。
A =dw_main.Retrieve(),a=-1 的。。它返回的不是行数的么?
我的dw是通过存储过程建立起来的。 展开
A =dw_main.Retrieve(),a=-1 的。。它返回的不是行数的么?
我的dw是通过存储过程建立起来的。 展开
3个回答
展开全部
函数作用:为DataWindow或者Datastore检索数据。在使用该函数之前应该执行过函数SetTransObject或者SetTrans,为数据窗口设置过事务对象。该函数执行之前,首先将数据窗口中已有的数据清除掉,然后将数据库中的数据检索到数据窗口中。所以,如果希望将检索到的数据追加到数据窗口中,需要编写程序。在数据窗口对象的RetrieveStart事件中返回2,即可防止清除掉数据窗口中的已有数据。
函数语法:long dwcontrol.Retrieve ( { any argument, any argument . . . } )
ldwcontrol:数据窗口、DataStore或者下拉子数据窗口。
largument:可选参数,根据数据窗口对象中的定义而定。参数的个数和数据类型应该和数据窗口对象中的定义保持一致。
返 回 值:数字类型,表示函数执行完之后数据窗口中显示出来的数据行数。注意,该返回值不表示检索到的数据行数。有两点,RetrieveStart中是否编写了脚本、数据窗口对象定义中是否指定了过滤规则。如果数据窗口对象中定义了过滤规则,检索完成后自动将不符合过滤规则的数据移动到数据窗口的Filter缓冲区中,函数的返回值则是检索到的总数据行数扣除移动到Filter缓冲区的数据行数。需要注意的是,只有数据窗口对象中定义的过滤规则影响Retrieve函数的返回值,函数SetFilter和Filter并不影响。
代码实例:
例1:下面的程序根据Retrieve函数的返回值显示提示信息。
long ll_rows
dw_main.SetTransObject(SQLCA)
ll_rows = dw_main.Retrieve()
IF ll_rows < 1 THEN MessageBox("错误","没有检索到数据。")
例2:带参数的检索。
数据窗口对象的SQL语句如下:
SELECT Name, emp.sal, sales.rgn From Employee, Sales
WHERE emp.sal > :an_Salary and sales.rgn = :as_Region
其中,an_Salary和as_Region为检索参数,分别为数值型和字符型。可以使用下面的语法检索数据:
dw_1.Retrieve(50000, "NW")
函数语法:long dwcontrol.Retrieve ( { any argument, any argument . . . } )
ldwcontrol:数据窗口、DataStore或者下拉子数据窗口。
largument:可选参数,根据数据窗口对象中的定义而定。参数的个数和数据类型应该和数据窗口对象中的定义保持一致。
返 回 值:数字类型,表示函数执行完之后数据窗口中显示出来的数据行数。注意,该返回值不表示检索到的数据行数。有两点,RetrieveStart中是否编写了脚本、数据窗口对象定义中是否指定了过滤规则。如果数据窗口对象中定义了过滤规则,检索完成后自动将不符合过滤规则的数据移动到数据窗口的Filter缓冲区中,函数的返回值则是检索到的总数据行数扣除移动到Filter缓冲区的数据行数。需要注意的是,只有数据窗口对象中定义的过滤规则影响Retrieve函数的返回值,函数SetFilter和Filter并不影响。
代码实例:
例1:下面的程序根据Retrieve函数的返回值显示提示信息。
long ll_rows
dw_main.SetTransObject(SQLCA)
ll_rows = dw_main.Retrieve()
IF ll_rows < 1 THEN MessageBox("错误","没有检索到数据。")
例2:带参数的检索。
数据窗口对象的SQL语句如下:
SELECT Name, emp.sal, sales.rgn From Employee, Sales
WHERE emp.sal > :an_Salary and sales.rgn = :as_Region
其中,an_Salary和as_Region为检索参数,分别为数值型和字符型。可以使用下面的语法检索数据:
dw_1.Retrieve(50000, "NW")
参考资料: http://www.huarw.com/program/pb/pb07/200609/39725.html
展开全部
在没有为数据窗口控件设置数据窗口对象时,进行retrieve操作,返回值是-1,否则刷新成功后返回的是数据窗口Primary数据区的记录数,即使是存储过程数据源也没什么不同。
楼主再好好检查一下程序吧,是不是写的有问题,或者多发点上来大家分析一下。
楼主再好好检查一下程序吧,是不是写的有问题,或者多发点上来大家分析一下。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改用dw_main.rowcount()取行数就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询