如何实现 DataWindow 有选择的接收文本文件的记录 谢谢!!!

ivy_dream 2004-12-21 04:56:07
文本文件中记录所有数据的信息
如果从该文本中选择满足某些条件的记录入库
不知如何实现?
百分感谢!
...全文
94 点赞 收藏 12
写回复
12 条回复
balloonman2002 2004年12月22日
filter!区域中的数据是被你过滤掉不再需要的数据,真正需要的数据还是保留在Primary!区域,因此需要用Primary!,而不用filter!
回复 点赞
雨后心晴 2004年12月22日
通过外部数据源导入就行了!
回复 点赞
ivy_dream 2004年12月22日
不过还有一个疑问,语句
dw_1.RowsCopy(1,dw_1.RowCount(), Primary!, lds_update, 1, Primary!)
中 为什么不用filter!呢?
按道理应该用filter!吧
但上述语句确实成功了
回复 点赞
balloonman2002 2004年12月22日
问题解决后请尽快揭贴,:)
回复 点赞
ivy_dream 2004年12月22日
balloonman2002(http://blog.csdn.net/balloonman2002) ( ) 的方法 成功了,非常感谢!!
回复 点赞
balloonman2002 2004年12月22日
你的代码改成:

datastore lds_update

dw_1.importfile(filename)
dw_1.setfilter("price>100")
dw_1.filter()

lds_update = create datastore
lds_update.dataobject = dw_1.dataobject
lds_update.settransobject(sqlca)
if dw_1.rowcount() > 0 then
dw_1.RowsCopy(1,dw_1.RowCount(), Primary!, lds_update, 1, Primary!)
end if

//换句话dw_1虽然filter了,但是其数据并未删除,因此需要用另外一个临时的DATASTORE进行UPDATE

if lds_update.update() =1 THEN
COMMIT;
messageBox("加载","加载成功!",Information!)
filedelete(filename)
else
ROLLBACK;
end if
dw_1.reset()
lds_update.reset()

destroy lds_update
回复 点赞
ivy_dream 2004年12月22日
dw_1.importfile(filename)
dw_1.setfilter("price>100")
dw_1.filter()

if dw_1.update() =1 THEN
COMMIT;
messageBox("加载","加载成功!",Information!)
filedelete(filename)
else
ROLLBACK;
end if
dw_1.reset()

可加载到数据库的是文本文件的所有记录?
回复 点赞
workhand 2004年12月22日
导入到dw后想怎么处理就怎么处理,过虑、删除,然后再update或者insert都可以啊
回复 点赞
ivy_dream 2004年12月22日
能否给出一个例子?谢谢
回复 点赞
hygougou 2004年12月21日
如果你的文本信息是动态记录的,不适合做import
fileread更适合
回复 点赞
balloonman2002 2004年12月21日
同意楼上,先全部导入再在DW里去过滤,如果你人为的去FILEREAD出来后再判断速度没有直接IMPORT快
回复 点赞
luotitan 2004年12月21日
先通过importfile导入到Datastore,过滤以后再共享到数据窗口。
回复 点赞
发动态
发帖子
DataWindow
创建于2007-09-28

465

社区成员

2.0w+

社区内容

PowerBuilder DataWindow
社区公告
暂无公告