我在pb中用sql语句写出来可是更新不了数据库啊

我在pb中用sql语句写出来可是更新不了数据库啊,第1张

你的退货表中只有这一列吗?如果不是看其它的列能不能为空

你可以在后面加一个判断

if sqlca.sqlcode<>0 then

messagebox("",sqlca.sqlerrtext)

return

end if

首先你需要建立一个ddlb控件,这个空间里面写:insert,update,delete

之后,你再建立一个ddlb控件,在FORM界面的open事件里面填写以下代码

string c1,i_temp

DECLARE c1 cursor FOR SELECT name FROM sysindexes where name like 'PK_%' and rows <>0

open c1

do while sqlca.sqlcode = 0

fetch c1 into :i_temp

ddlb_1.insertitem( mid(i_temp,4,len(i_temp)-3),0)

loop

close c1

这个程序是将你连接的数据库中的所有有数据的表的名字取出来后,添加在ddlb控件的下拉菜单中。

做完后,再在FORM上添加一个ddlb的控件,在之前弄表名的ddlb控件的itemchanged的事件中添加如下代码

string c1,i_temp,ls_sql

long i_id

ls_sql = 'PK_' + ddlb_1.text

DECLARE c1 cursor FOR SELECT Name FROM SysColumns WHERE id in

(SELECT id

FROM sysindexes where name = :ls_sql)

open c1

do while sqlca.sqlcode = 0

fetch c1 into :i_temp

ddlb_2.insertitem( i_temp,0)

loop

close c1

OK,这样你就已经取到了组成语句的几个关键部位,之后的代码怎么写,你就自己完成吧,我写的累死了,就不累述了。

2~~~~~~~~~~~~~~~~~~~~~~~

这个问题很简单,你写成ddlb_1.selectitem(0)就行了。 怕你看不懂,稍微解释下这个东西,ddlb控件应该是可以改TEXT属性的,但是你可能没有勾上allow edit的属性,所以在修改的时候报错。当然,这样的情况不是说不能修改,selectitem(0)是指选择ddlb中的空选项,当把0变成1的时候就是选择ddlb中的第一个下拉选项,PB中的F1帮助里面有详细解释,其他的么,应该都会了把。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6623420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存