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

ivy_dream 2004-12-21 04:56:07
文本文件中记录所有数据的信息
如果从该文本中选择满足某些条件的记录入库
不知如何实现?
百分感谢!
...全文
123 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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,过滤以后再共享到数据窗口。

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧