pb 的数据库即时更新

pb 的数据库即时更新,第1张

是不是事务被锁住了?

使用数据窗口更新么?有没有及时的COMMIT?

在更新A表后再查询A表,原有的更新事务是否有COMMIT活着ROLLBACK?

如果没有,那么马上查询,肯定是不行。

首先你需要建立一个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/6757689.html

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

发表评论

登录后才能评论

评论列表(0条)

保存