编程论坛's Archiver

乡村木子 发表于 2007-7-5 10:04

dw_1.setfilter()只能char字段进行过滤吗?

[size=4]<STRONG>我在查询时,按课程代码过滤查询时,<BR>会出现datawindows错误,<BR>内容:types of expressions must match.<BR>但是当按课程名称过滤查询时,则没有问题。<BR>后来发现,c_id字段是numeric类型的,而c_name字段是char类型的。<BR>是不是dw_1.setfilter()中只能对char类型字段过滤呀,<BR>如果别的也可以,请指点一下,万分感谢!<BR>我的代码如下:<BR>if ddlb_1.text = "课程代码" then<BR>    dw_1.settransobject(sqlca)<BR>    dw_1.setfilter("c_id='"+sle_1.text+"'")<BR>    dw_1.retrieve()<BR>end if<BR>if ddlb_1.text = "课程名称" then<BR>    dw_1.settransobject(sqlca)<BR>    dw_1.setfilter("c_name='"+sle_1.text+"'")<BR>    dw_1.retrieve()<BR>end if</STRONG>[/size]

sam2080 发表于 2007-7-5 16:27

<P>类型不对<BR>当过滤课程代码时,把sle_1.text转换为c_id的类型<BR></P>

乡村木子 发表于 2007-7-5 19:09

你说的意思是这样吗?<BR>int s<BR>s = integer(sle_1.text)<BR>if ddlb_1.text = "课程代码" then<BR>    dw_1.settransobject(sqlca)<BR>    dw_1.setfilter("c_id='"+s+"'")<BR>    dw_1.retrieve()<BR>end if<BR><BR>这样也不行的,这样在检验时,直接提示错误,<BR>incompatible types in expression :string,integer.<BR><BR>有其它的查询方法吗?别的只要能查就行,谢谢!

ugly927846 发表于 2007-7-5 19:26

<P>总的原则:转换成一样的 。</P>

乡村木子 发表于 2007-7-5 19:49

不知道怎么转!你们有别的方法吗?只要能查询就行了,要不我就只有重新建表了,<BR>所有字段,全用char。

路過 发表于 2007-7-6 13:57

if ddlb_1.text = "课程代码" then<BR>    dw_1.settransobject(sqlca)<BR>    dw_1.setfilter("c_id='"+sle_1.text+"'")<BR>    dw_1.retrieve()<BR>end if<BR><BR>如是c_id    是numeric类型將改為<BR><FONT color=#ff3300>dw_1.setfilter("c_id= "+sle_1.text+" ")</FONT>

乡村木子 发表于 2007-7-6 14:36

非常感谢版主!解决了!真是高手呀![em01][em23]

页: [1]

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