将游标改为数据窗口或datastore,该怎么处理
将游标改为数据窗口或datastore
现有一个系统是使用游标存储数据,效率特慢,想改成数据窗口或者datastore,但是不会写,请高手指导,希望能给个例子
------解决方案--------------------
方法I:
1,用原游标的SQL 语句创建DW对象.
2,在程序中声明 datastore 并 create
3,把DW对象名作为字符串,赋值给刚申明的 datastore.dataobject
4,datastore.retrieve()
方法II,参照这个函数:
现有一个系统是使用游标存储数据,效率特慢,想改成数据窗口或者datastore,但是不会写,请高手指导,希望能给个例子
------解决方案--------------------
方法I:
1,用原游标的SQL 语句创建DW对象.
2,在程序中声明 datastore 并 create
3,把DW对象名作为字符串,赋值给刚申明的 datastore.dataobject
4,datastore.retrieve()
方法II,参照这个函数:
- C/C++ code
global type gf_create_ds from function_object end type forward prototypes global function boolean gf_create_ds (ref transaction at_trans, ref string as_sql, ref datastore ad_datastore) end prototypes global function boolean gf_create_ds (ref transaction at_trans, ref string as_sql, ref datastore ad_datastore);//==================================================================== // 事件: .gf_create_ds() //-------------------------------- // 描述: 全局函数,用SQL 语句构造 datastore //-------------------------------- // 参数: // reference transaction at_trans // reference string as_sql // reference datastore ad_datastore //-------------------------------- // 返回: boolean //-------------------------------- // 作者: Wangenu 日期: 2009年12月17日 //-------------------------------- // Copyright(c) 2009 Wangenu(TM). //-------------------------------- // 修改历史: // //==================================================================== ad_datastore = create datastore string ls_errsyntaxfromSQL string ls_errcreate string ls_newsyntax ls_newsyntax = at_trans.syntaxfromsql(as_sql ,'style(type=grid)',ls_errsyntaxfromSQL) if len(ls_errsyntaxfromSQL) > 0 then messagebox('生成临时表句法错误','提示:~n~n'+ls_errsyntaxfromSQL,stopsign!) return false else ad_datastore.create(ls_newsyntax,ls_errcreate) if len(ls_errcreate) > 0 then messagebox('生成临时表错误','提示:~n~n'+ls_errsyntaxfromSQL,stopsign!) return false end if ad_datastore.settransobject(at_trans) ad_datastore.retrieve() end if return true end function
------解决方案--------------------