急救!数据管道能不能像datawindow一样动态创建或者在程序里改它的源与目的表

sailingcelery 2001-12-27 02:14:18
用数据管道导数据,我想动态改变,管道能取得数据和目的表。
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailingcelery 2002-01-09
  • 打赏
  • 举报
回复
结了吧,看来一不会有什么了
sailingcelery 2002-01-07
  • 打赏
  • 举报
回复
thanks
如果那样,用户还不把东西弄乱了。
sailingcelery 2002-01-05
  • 打赏
  • 举报
回复
致heliang()

你说的是不是就是用我说的方法来修改?
ls_syntax=pipelineobject.syntax
修改ls_syntax
pipelineobject.syntax=ls_syntax
Methodor 2002-01-05
  • 打赏
  • 举报
回复
可以-不过一般意义不大~~
一般都是在设计阶段做好~~
如果要修改可以按你的方法做~~
如果要进一步的话,只能做个产生或修改(定义)pipeline的界面了,可以在运行阶段定义管道(类似pb环境下)~~
heliang 2001-12-31
  • 打赏
  • 举报
回复
象动态创建 datawindow一样的动态创建data pipeline
完全可以啊,只是要求原库和新库结构有一定的规律。主要是列的对应关系和对应列的数据类型转换关系。
文法吗,呵呵,自己导出几个管道分析一下就可以了。

我曾成功做过两个数据库200多张表的同步,都是动态生成的阿。
sailingcelery 2001-12-30
  • 打赏
  • 举报
回复
我现在有一种办法来解决,可是太麻烦。就是用
ls_syntax=pipelineobject.syntax
修改ls_syntax
pipelineobject.syntax=ls_syntax
这样就可以了。可是太麻烦了,修改时不但要修改表名,还要把每一个字段都修改才能用。除非你的新要连接表和你的老表结构一模一样,那样也是麻烦,还要该表明。为什么没有一种象动态创建datawindow一样的动态创建data pipeline?
sailingcelery 2001-12-30
  • 打赏
  • 举报
回复
这个我知道,但是你不是还要创建不同的data pipeline?才能用pipelineobject.dataobject="data pipeline name"而且有时表还不能确定不能在设计界面建好data pipeline.

caddie_lin 2001-12-27
  • 打赏
  • 举报
回复
pipelineobject.dataobject = ""
pipelineobject.start()
You can see the help, search for "pipeline".
bjwulin 2001-12-27
  • 打赏
  • 举报
回复
可以。
ylg007 2001-12-27
  • 打赏
  • 举报
回复
也和数据窗口一样,动态改变DataObject属性。
sailingcelery 2001-12-27
  • 打赏
  • 举报
回复
还没有人解答?天呀,救救我吧!
数据存在主次时,当更新了次数据后,主数据在后台有更变时。可利用刷新主当前行的方法重显主数据。 /************************************************************ 函数名称: f_refresh_currentrow(adw) 功 能: 刷新DW当前行数据,不可刷新NO update or 带arguments的DW 参数说明: adw 目标DW 返 回 值: integer 成功返回1,失败返回-1 作 者: sean 创建时间: 2010年8月18日 ************************************************************/ string ls_dataobject string ls_keys[] //key Column Name string ls_dbname[] //key field Name string ls_coltype[] //field style string ls_tablenm //table name string ls_condition //sql Condition long ll_currentrow //Current Row numeric long ll_column //Column count integer i datawindow ldw datastore ldatastore ldw=adw if ldw.rowcount( )=0 then return -1 elseif trim(ldw.describe( "datawindow.table.arguments"))<>'?' then messagebox('','刷新数据窗口当前行失败!,数据窗口需要参数',exclamation!) return -1 else ll_currentrow=ldw.getrow( ) FOR ll_column = 1 TO long(ldw.object.datawindow.column.count)//key names If ldw.Describe("#"+string(ll_column)+".key") ='yes' Then i++ ls_keys[i]=ldw.Describe("#"+string(ll_column)+".name") ls_dbname[i]=ldw.Describe("#"+string(ll_column)+".dbname") ls_coltype[i]=ldw.Describe("#"+string(ll_column)+".coltype") End If NEXT if upperbound(ls_keys[])=0 then messagebox('','刷新数据窗口当前行失败!,没有主键',exclamation!) return -1 else ls_tablenm=left(ls_dbname[1],pos(ls_dbname[1],'.') -1) //table name for i=1 to upperbound(ls_keys[]) if pos('numb,deci,long,',LeftA(ls_coltype[i],4) +',')>0 then ls_condition+="and "+ls_dbname[i]+"="+string(f_getitem(ldw,ll_currentrow,ls_keys[i])) else ls_condition+="and "+ls_dbname[i]+"='"+string(f_getitem(ldw,ll_currentrow,ls_keys[i]))+"'" end if next ls_condition=mid(ls_condition,4) //sql Condition ldatastore=create datastore ldatastore.dataobject=ldw.dataobject ldatastore.settransobject( sqlca) if f_addwhere_retrieve(ldatastore,ls_condition)=1 then if ldatastore.rowcount( )=1 then ldw.object.data[ll_currentrow]=ldatastore.object.data[1] ldw.setitemstatus( ll_currentrow, 0, primary!, NotModified!) //if ldw.getrow( )<>ll_currentrow then ldw.scrolltorow( ll_currentrow) end if else messagebox('','刷新数据窗口当前行失败!,条件语法错误',exclamation!) return -1 end if destroy ldatastore end if end if

609

社区成员

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

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