首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

关于PB 中find 变量表达式的有关问题

2012-04-06 
关于PB 中find变量表达式的问题 急为什么ll_num返回值为负数?longn_nodelds_tree CREATE datastorelds_t

关于PB 中find 变量表达式的问题 急
为什么ll_num返回值为负数?
long n_node
lds_tree = CREATE datastore 
lds_tree.dataobject = "dw_tree_browse" 
lds_tree.settransobject(sqlca) 
lds_tree.retrieve()

n_node=lds_tree.object.tree_node[1]
ll_num = lds_tree.find("lds_tree.tree_node = n_node",1,100000)

其中tree_node 为NUMBER,如果ll_num = lds_tree.find("lds_tree.tree_node = 1",1,100000)就是正确的,
这个表达式的变量怎么处理?

[解决办法]
ll_num = lds_tree.find("tree_node =" +string(n_node),1,100000) 


[解决办法]
long dwcontrol.Find ( string expression, long start, long end ) 
其中expression为字符串
在字符串中不能插入变量,但是可以用构造字符串变量的方式来加入字符串
n_node为数值型,则可以这样构造参数expression
"tree_node = " +string(n_node)
[解决办法]
3楼说完了,我来路过一下
另外,在数据量比较大的情况下,尤其是要循环查找的情况下,find函数最好配合sort函数,再写个合适的表达式字符串,可以极大地提高查找效率
[解决办法]

探讨
ll_num = lds_tree.find("tree_node =" +string(n_node),1,100000)

[解决办法]
ll_num = lds_tree.find("tree_node =" +string(n_node),1,100000) 
按照这样写,就对了。

在双引号中出现的字符串,PB在执行时仍然按字符串常量处理。

假如n_node=1

字符串"lds_tree.tree_node = n_node",PB在执行时,仍然是"lds_tree.tree_node = n_node"
字符串"lds_tree.tree_node = "+string(n_node),PB在执行时,就变成了"lds_tree.tree_node = 1"

[解决办法]
ll_num = lds_tree.find("tree_node = '"+String(n_node)+"'",1,100000) 

[解决办法]
探讨
ll_num = lds_tree.find("tree_node =" +string(n_node),1,100000)

[解决办法]
探讨
ll_num = lds_tree.find("tree_node =" +string(n_node),1,100000)

热点排行