如何实现100%的动态数据管道(三)
来源:互联网 发布:阿里云网站设计 编辑:程序博客网 时间:2024/05/01 15:39
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
下面看看,如何根据中间层的数据,构建管道语法:
1.首先建立一个数据窗口对象:d_vdtcolumns
SQL语法是:
SELECTvdt_columns.utid,
vdt_columns.uid,
vdt_columns.upkey,
vdt_columns.udmid,
vdt_columns.udmname,
vdt_columns.unulls,
vdt_columns.uwidth,
vdt_columns.uscale,
vdt_columns.uname,
vdt_columns.udefault,
vdt_columns.ucheck,
vdt_columns.utname,
vdt_columns.uidentity
FROMvdt_columns
WHEREutname=:as_tname
2.准备工作就绪,下面就是主战场了,开始构建数据管道.
考虑到一个管道对象可以传输多个任务,建立一个对象nvo_pipetransattrib保存传输需要的语法:
它包含了一下的instance变量:
string is_objectname //表名
string is_syntax //管道语法
string is_sconnect='zw',is_dconnect='daixf' //源连接和目的数据库连接
string is_ptype,is_pcommit,is_errors //管道的几个属性
string is_sname,is_dname //源表名,目的表名
string is_sqlsyntax //管道的SQL语法
建立一个对象,从数据管道对象继承.
开始构造语法:写一个函数.
nvo_pipetransattribinv_attrib[]
stringls_syntax,ls_sourcesyntax,ls_destsyntax
intli,lj,li_ind,li_find,li_rows,li_identity
stringls_tablename,ls_default,ls_defaultvalue,ls_pbdttype
booleanlb_find
dec ld_uwidth,ld_prec,ld_uscale
string ls_types,ls_dbtype,ls_prikey,ls_name,ls_nulls,ls_msg,ls_title='of_constrpipesyntax()'
nvo_stringlnv_string
nvo_datastorelds_vdtcolumns
booleanlb_key
lds_vdtcolumns=createnvo_datastore
lds_vdtcolumns.dataobject='d_vdtcolumns'
lds_vdtcolumns.settransobject(SrcSqlca)
li=1
of_input(inv_attrib[li])
li_find=pos(inv_attrib[li].is_sqlsyntax,'*',1)
ifli_find>0then
lds_vdtcolumns.retrieve(as_tablename)
of_filterimg(lds_vdtcolumns)
li_rows=lds_vdtcolumns.rowcount()
forlj=1toli_rows
ls_name=lds_vdtcolumns.getitemstring(lj,'uname')
ls_types=lds_vdtcolumns.getitemstring(lj,'udmname')
li_identity=lds_vdtcolumns.getitemnumber(lj,'uidentity')1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
下面看看,如何根据中间层的数据,构建管道语法:
1.首先建立一个数据窗口对象:d_vdtcolumns
SQL语法是:
SELECTvdt_columns.utid,
vdt_columns.uid,
vdt_columns.upkey,
vdt_columns.udmid,
vdt_columns.udmname,
vdt_columns.unulls,
vdt_columns.uwidth,
vdt_columns.uscale,
vdt_columns.uname,
vdt_columns.udefault,
vdt_columns.ucheck,
vdt_columns.utname,
vdt_columns.uidentity
FROMvdt_columns
WHEREutname=:as_tname
2.准备工作就绪,下面就是主战场了,开始构建数据管道.
考虑到一个管道对象可以传输多个任务,建立一个对象nvo_pipetransattrib保存传输需要的语法:
它包含了一下的instance变量:
string is_objectname //表名
string is_syntax //管道语法
string is_sconnect='zw',is_dconnect='daixf' //源连接和目的数据库连接
string is_ptype,is_pcommit,is_errors //管道的几个属性
string is_sname,is_dname //源表名,目的表名
string is_sqlsyntax //管道的SQL语法
建立一个对象,从数据管道对象继承.
开始构造语法:写一个函数.
nvo_pipetransattribinv_attrib[]
stringls_syntax,ls_sourcesyntax,ls_destsyntax
intli,lj,li_ind,li_find,li_rows,li_identity
stringls_tablename,ls_default,ls_defaultvalue,ls_pbdttype
booleanlb_find
dec ld_uwidth,ld_prec,ld_uscale
string ls_types,ls_dbtype,ls_prikey,ls_name,ls_nulls,ls_msg,ls_title='of_constrpipesyntax()'
nvo_stringlnv_string
nvo_datastorelds_vdtcolumns
booleanlb_key
lds_vdtcolumns=createnvo_datastore
lds_vdtcolumns.dataobject='d_vdtcolumns'
lds_vdtcolumns.settransobject(SrcSqlca)
li=1
of_input(inv_attrib[li])
li_find=pos(inv_attrib[li].is_sqlsyntax,'*',1)
ifli_find>0then
lds_vdtcolumns.retrieve(as_tablename)
of_filterimg(lds_vdtcolumns)
li_rows=lds_vdtcolumns.rowcount()
forlj=1toli_rows
ls_name=lds_vdtcolumns.getitemstring(lj,'uname')
ls_types=lds_vdtcolumns.getitemstring(lj,'udmname')
li_identity=lds_vdtcolumns.getitemnumber(lj,'uidentity')1<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 如何实现100%的动态数据管道(三)
- 如何实现100%的动态数据管道(三)
- 如何实现100%的动态数据管道(一)
- 如何实现100%的动态数据管道(二)
- 如何实现100%的动态数据管道(二)
- 可变长度数据的管道实现方法
- 实现FusionChart动态获取数据(三)
- 匿名管道实现三种消息类型的通信
- Linux下的有名管道(04)---使用一个管道实现数据的读写
- 利用Spark Streaming来实现实时的数据管道服务
- PB动态数据管道技术实用编程
- 管道的实现机制
- 管道的实现机制
- 有名管道的实现
- 管道,FIFO的实现
- unix 管道的实现
- PB中实现数据窗口动态排序的三种方法
- 管道的故事(三)
- PL/SQL单行函数和组函数详解
- SQL优化
- 中加条件判断来决定显示的数值
- 改变表的一列的缺省值
- sqlnote
- 如何实现100%的动态数据管道(三)
- 互联网应聘出现新航标:找工作流行搜索风
- 如何实现100%的动态数据管道(二)
- vb下将sql中的表导入到excel
- 怎样利用PowerBulider的Datawindow建立中国式的动态报表
- 李开复回应质疑:傻瓜才花钱买没有价值流量
- 存储过程---实践
- 9大数据仓库特点比较
- LETS START FROM HERE...