猿问

我数据库里的表名为biao ,为什么一直提示select语句那行出错 ?

char getid
char getliang
getid=sle_1.text
getliang=sle_2.text
if sqlca.sqlcode>100
then messagebox("出错","没有此商品")
else
select * from biao where(uid=:getid);
messagebox("显示区:","名称:"+uname+"单价:"+uprice+"数量:"+getliang)
double zonge
zonge=uprice*geliang
messagebox("结算:","总额:"+zonge)
end if

翻阅古今
浏览 195回答 3
3回答

眼眸繁星

在PB当中,SQL语句有取值的必须对应有 存储 取到的值的变量,你的语句应该改成select *into :var1,:var2,:var3....... //看你的表有多少个字段,就要有对应的多少个变量来得到取得的值from biaowhere uid = :getid;if sqlca.sqlcode < 0 thenmessagebox("",sqlca.sqlerrtext)elseif sqlca.sqlcode = 100 then.....end if在你的程序中还存在三个问题1.sqlca.sqlcode的检测要放在sql执行之后2.if语句的写法有问题,不能把then放在第二行,必须与if同行3.程序中间有个变量声明,虽然这样做也是允许的,但作为一个规范的程序,还是要把所的变量声明放在程序的起始部分另外,为什么gdtid,getliang要定义为char型?只有一个字符吗?一般字符型还是定义为string为好,这样不管有几个字符都能适应.希望对你有帮助

Helenr

if sqlca.sqlcode>100then messagebox("出错","没有此商品")elseselect * from biao where(uid=:getid);这部分改成select * from biao where(uid=:getid) using sqlca;if sqlca.sqlcode>100 thenthen messagebox("出错","没有此商品")end ifchar类型改成string类型

UYOU

一、建议楼主看下变量类型的用法。如果纯数字,可以使用int 或long 型如果数字字母文字混合,可以使用string型如果价格,可以使用 dec{}型个人建议楼主这样定义:string getid,getling,unamedec{2} uprice,zonge二、select * from biao where(uid=:getid);查询出来的值,必须放到指定变量。例:string unamedec{2} upriceselect unname,uprice,getliang into:uname,:uprice from biao where(uid=:getid);三、if sqlca.sqlcode>100then messagebox("出错","没有此商品")else应该写成if sqlca.sqlcode>100 thenmessagebox("出错","没有此商品")end if且 sqlca.sqlcode 必须接在 select 语句的后面,而不是前面。个人看法,如有错误,请指出。
随时随地看视频慕课网APP
我要回答