为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻阅古今 2022-06-02 07:03:12
char getidchar getlianggetid=sle_1.textgetliang=sle_2.textif sqlca.sqlcode>100then messagebox("出错","没有此商品")elseselect * from biao where(uid=:getid);messagebox("显示区:","名称:"+uname+"单价:"+uprice+"数量:"+getliang)double zongezonge=uprice*geliangmessagebox("结算:","总额:"+zonge)end if
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

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


查看完整回答
反对 回复 2022-06-06
?
Helenr

TA贡献1780条经验 获得超3个赞

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



查看完整回答
反对 回复 2022-06-06
?
UYOU

TA贡献1878条经验 获得超4个赞

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


查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信