编程论坛's Archiver

dangmiao 发表于 2008-3-31 16:46

PB中setfilter()函数问题求教?---谢谢版主的回答,问题已经解决了!高兴

在数据窗口中
第一列:列名 STU_ID 为char型

如何用setfilter()函数显示单行文本框中指定学号的详细信息?

格式应该怎么写?请知道的朋友,告诉下,谢谢啦!

我写的老是说类型不匹配,向高手求救!
问题补充:这是我"检索"中的程序代码,请大家看看,错在哪里了?
string l
l=trim(sle_1.text)

dw_1.setfilter("t_student.stu_id =" + l + "" )
dw_1.filter()

[[it] 本帖最后由 dangmiao 于 2008-4-2 11:36 编辑 [/it]]

wsl000 发表于 2008-3-31 21:46

dw_1.setfilter("t_student.stu_id ='" + l + "'" )

dangmiao 发表于 2008-4-1 07:53

[quote][bo]以下是引用 [un]wsl000[/un] 在 2008-3-31 21:46 的发言:[/bo]

dw_1.setfilter("t_student.stu_id ='" + l + "'" )


这样是不报数据类型错了,可是出现另一个错误提示:Expression is not valid. 这又是什么呀?

而我把表名: t_student 去了,就不报错了!可是什么也没有出来,好像一切都没有反应似的!
表中数据大致如下:
stu_id   char(4)   primary key
stu_name char (10)
stu_sex 等等
表名t_student
怎么检索不出来数据呢?
如果用retrieve()可以全部检索出来
     

知道的朋友希望赐教一下,谢谢!

[[it] 本帖最后由 dangmiao 于 2008-4-1 08:07 编辑 [/it]]

dangmiao 发表于 2008-4-1 10:59

难道这个地方,没有一个人能解决这个问题吗?这个很难吗?

ugly927846 发表于 2008-4-1 11:21

语句是没有错的。。。是别的地方出问题了

ugly927846 发表于 2008-4-1 11:24

string l
l=trim(sle_1.text)

integer i=dw_1.setfilter("stu_id ='" + l + "'" )

dw_1.filter()

看下i的返回值,如果为1就是正确的 。我想可然是你别的地方出问题了
还有个问题是你输入的检索的条件里面没有数据

[[it] 本帖最后由 ugly927846 于 2008-4-1 11:38 编辑 [/it]]

dangmiao 发表于 2008-4-1 14:03

返回值是1不错,可是就是不出数据,我也不明白为什么,当用retrieve()函数时可以全部出来!这个到底哪个地方错了呢?

ugly927846 发表于 2008-4-2 09:26

string l ,df
l=trim(sle_1.text)
df="stu_id ='" + l + "'"
messagebox('',df)
integer i=dw_1.setfilter(df )
dw_1.filter()
messageb弹出的df是什么,你在sql语句中用where条件用df看下能不能出数据....
唯一的问题是你的df有问题 ,setfilter函数的功能是把df当作是sql中where语句的
条件。。。。

[[it] 本帖最后由 ugly927846 于 2008-4-2 09:28 编辑 [/it]]

dangmiao 发表于 2008-4-2 11:35

问题已经解决了,
只要在前面加上
dw_1.settransobject(sqlca)
dw_1.retrieve()
string l ,df
l=trim(sle_1.text)
df=("stu_id ='" + l + "'" )
//messagebox('',df)
dw_1.setfilter(df)
dw_1.filter()
为什么这样就行了呢?无意中发现的,难道filter()不难检测数据出来吗? 谢谢版主的帮忙!

ugly927846 发表于 2008-4-3 11:10

dw_1.settransobject(sqlca)
这句一定要,因为sqlca是pb默认的事物对象
你创建了对象之后,在提取数据之前一定要dw_1.settransobject(sqlca)一下
要不pb怎么知道你要用哪个事物对象呢
dw_1.retrieve()
这个不要也可以..........

lively1982 发表于 2008-4-26 16:37

string l ,tiaojian
l=trim(sle_1.text)
tiaojian="stu_id='"+l+"'"
dw_1.settransobject(sqlca)
dw_1.retrieve()

dw_1.setfilter(tiaojian)
dw_1.filter()
试试,应该没问题

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.