注册 登录
编程论坛 PowerBuilder

[求助]求助!数据窗口查询的问题!已解决!

zy45 发布于 2006-07-18 12:47, 1322 次点击


string condition
double tj2,tj3
if ddplb_1.text="产量" then
tj2=double(trim(sle_2.text))
tj3=double(trim(sle_3.text))
condition="select seed.pzmc from seed where seed.cscl >= tj2 and seed.cscl <= tj3"
dw_1.settrans(sqlca)
dw_1.setsqlselect(condition)
dw_1.retrieve()
end if
运行时提示
DataWindow Error
---------------------------
Select error: SQLSTATE = 07001

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 7。


我把变量换成数字就好使
应该是变量的问题
哪位高手能帮忙看看
谢谢

[此贴子已经被作者于2006-7-20 10:07:26编辑过]

5 回复
#2
fgypblt2006-07-18 15:41

假设 dw_1控件 对应database object只有pzmc一个列,且未设retrievl arguments
tj2/tj2数据格式符合cscl定义

string condition
double tj2,tj3
if ddplb_1.text="产量" then
tj2=double(trim(sle_2.text))
tj3=double(trim(sle_3.text))
condition='select pzmc from "seed" where cscl >= 100 and cscl <= 300'
/*可用' ' &
+' '*/
dw_1.settrans(sqlca)//?settransobject(sqlca)
dw_1.setsqlselect(condition)
dw_1.retrieve()
end if

自定义变量 可单独列出
condition='select pzmc from "seed" where cscl >=' +tj2+ 'and cscl <='+ tj3

[此贴子已经被作者于2006-7-20 10:48:11编辑过]

#3
zy452006-07-18 16:35

condition我也是这么定义的

不过setsqlselect()函数的参数是查询语句,里面放个string型变量没用呀!

condition="select seed.pzmc from seed where seed.pzly like '"+tj1+"'"

这条语句是好使的tj1是string型的

[此贴子已经被作者于2006-7-18 16:39:18编辑过]

#4
ヤ順祺冄繎ヤ2006-07-18 16:38
以下是引用zy45在2006-7-18 12:47:12的发言:

double tj2,tj3
if ddplb_1.text="产量" then
tj2=double(trim(sle_2.text))
tj3=double(trim(sle_3.text))
condition="select seed.pzmc from seed where seed.cscl >= tj2 and seed.cscl <= tj3"
dw_1.settrans(sqlca)
dw_1.setsqlselect(condition)
dw_1.retrieve()
end if
运行时提示
DataWindow Error
---------------------------
Select error: SQLSTATE = 07001

[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 7。


我把变量换成数字就好使
哪位高手能帮忙看看
谢谢

这样呢?
condition="select seed.pzmc from seed where seed.cscl >=" +tj2+" and seed.cscl <="+ tj3

#5
zy452006-07-19 08:30
这样也不好使
condition和tj2,tj3的类型不一样
主要是把tj2,tj3放的引号里他们就不是变量了,放到外面类型又不一样
加个string()tj2,tj3到是能取到数了,可是取到的数又变成字符型的了
和表里字段的类型又不一样了
郁闷死我了
想了一天多了

[此贴子已经被作者于2006-7-19 15:16:43编辑过]

#6
zy452006-07-20 10:06
我想明白了
改成下面这样就好使了
string condition,tj2,tj3
if ddplb_1.text="产量" then
tj2=trim(sle_2.text)
tj3=trim(sle_3.text)
condition="select seed.pzmc from seed where seed.cscl >="+ tj2+" and seed.cscl <=" tj3
dw_1.settrans(sqlca)
dw_1.setsqlselect(condition)
dw_1.retrieve()
end if
1