1。專案中遇到了父子層級關係的問題,剛開始的處理辦法是:先將資料從資料庫中查處理,然後再在**中遍歷,這樣做,**寫的比較臃腫,再加上還有其他的業務要處理,比較麻煩,後來就查詢了一些資料,發現oracle中有個函式connect by可以解決這個問題,寫起來,**也比較簡潔
這個就寫個例子來說明一下這個問題:
1首先建立一張表
create
table text_cen (
id varchar2(20),
name varchar2(20),
parentid varchar2(20)
);
2.給表中插入一些層級的資料
insert
into text_cen(id,name,parentid) values ('001','root',null);
insert
into text_cen(id,name,parentid) values ('001001','大禹','001');
insert
into text_cen(id,name,parentid) values ('001002','龍心','001');
insert
into text_cen(id,name,parentid) values ('001003','五毒聖君','001');
insert
into text_cen(id,name,parentid) values ('001001001','分頁','001001');
insert
into text_cen(id,name,parentid) values ('001001002','遞迴','001001');
insert
into text_cen(id,name,parentid) values ('001001003','排序','001001');
insert
into text_cen(id,name,parentid) values ('001001003001','計數','001001003');
insert
into text_cen(id,name,parentid) values ('001002001','張無忌','001002');
insert
into text_cen(id,name,parentid) values ('001002002','周杰','001002');
insert
into text_cen(id,name,parentid) values ('001003001','林心如','001003');
然後檢視一下表中的資料
現在查詢一下id為001001的子孫後代
select * from text_cen
start
with id = '001001'
connect
byprior id = parentid
結果:
這個還有一些屬性
level:標記層級級數,最上層節點為1,之後為2、3……。
connect_by_iscycle:標記此節點是否為某乙個祖先節點的父節點,導致迴圈,1為是,0為否。
connect_by_isleaf :標記此節點是否為葉子節點,即沒有子節點,1為是,0為否。
connect_by_root:標記此節點的祖先節點,後面加列名或表示式,取祖先節點的記錄值。
UDP SOCKET程式設計中的connect
udp是乙個無連線的協議,因此socket函式connect 似乎對udp是沒有意義的,然而事實不是這樣。使用connect 來建立與服務程式的連線。與tcp協議不同,udp的connect 並沒有與服務程式三次握手。上面說了udp是非連線的,實際上也可以是連線的。使用連線的udp,kernel可以...
qt中的 connect 函式
1 connect 函式實現的是訊號與槽的關聯。注意 只有qo bject類及其派生的類才能使用訊號和槽的機制 2 函式原型 static qmetaobject connection connect const qobject sender,const char signal,const qobj...
QT中的connect用法總結
首先來看看老版本的 connect 寫法,比較複雜些,需要將訊號和槽進行明確的指定,包括形參。看乙個示例 為方便演示,先自定義乙個 button,然後定義兩個過載的訊號 class mybutton public qwidget 那麼在用這個 button 的時候連線這兩個訊號,按照舊版本的寫法,應...