马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先说DDL的分类。有一类DDL,是不需要重建表的,比如加非聚簇索引。这类操作其实不会丢数据,也是在原表上直接操作,对于我们“以恢复数据为目的”的闪回,是可以先忽略的。另外一类,则是会影响到表数据的操作。treeview|函数|控件|原创
/**********************************************************/
//function:遍历一切的项,查找方针项
//uf_find_item
//para:
//1.handle:项目句柄long
//2.a_data:方针项数据string
//3.ai_type:查找范例int
//return:(none)
//
//date
//comment:
//ai_type=1是正确查找
//ai_type=2是含混查找
/*********************************************************/
Longl_ret,l_find
TreeViewItemltvi_find
//没有找到
ib_find=FALSE
IFIsNull(a_data)THEN
//MessageBox(ga_app.dwmessagetitle,"请输出查询前提!",StopSign!)
RETURN-1
ENDIF
//DoWhileYield()
//Loop
DOWHILEhandle-1ANDNOTib_find
THIS.GetItem(handle,ltvi_find)
IFai_type=1THEN//是正确查找
IFstring(ltvi_find.data)=a_dataTHEN
SelectItem(handle)
ib_find=TRUE
RETURNhandle
ENDIF
ELSE//是含混查找
IFPos(ltvi_find.label,String(a_data))>0THEN
SelectItem(handle)
IFMessageBox(,是不是查找下一项"+&
String(a_data)+",Question!,YesNo!,2)=2THEN
ib_find=TRUE
RETURNhandle
ENDIF
ENDIF
ENDIF
//---判别该项是不是有子项,有则,递回挪用,处置前往值获得方针项句柄---//
l_ret=THIS.FindItem(ChildTreeItem!,handle)
IFl_ret>0THEN
l_find=THIS.uf_find_item(l_ret,a_data,ai_type)
ENDIF
handle=THIS.FindItem(NextTreeItem!,handle)
LOOP
IFib_findTHEN
RETURNl_find
ELSE
RETURN-1
ENDIF
//=====================================
////ue_deleteitems
//删除一切树形节点的函数
//longal_handle
//wuhai
//20040725
//======================================
longll_chi_handle,ll_parent_handle
longll_c
ll_chi_handle=this.FindItem(ChildTreeItem!,al_handle)
ifll_chi_handle>0then
this.eventue_deleteitems(ll_chi_handle)//递回函数
endif
ll_parent_handle=this.FindItem(ParentTreeItem!,al_handle)
ifal_handle=-1andll_parent_handle=-1andll_chi_handle=-1thenreturn
this.deleteitem(al_handle)
il_c++
this.eventue_deleteitems(ll_parent_handle)//递回函数
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。 |