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为好,这样不管有几个字符都能适应.
希望对你有帮助
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类型
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 语句的后面,而不是前面。
个人看法,如有错误,请指出。
添加回答
举报