-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathobj_tree1.tcl
127 lines (86 loc) · 2.51 KB
/
obj_tree1.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package require tclodbc
puts "-- Start --"
proc LogWrite { s } {
global rf
if {![info exists rf]} { return }
if {$rf==""} { return }
puts $rf $s
}
proc GetList { fpid header } {
global db1
# set sql4 "Select ID,ID_PARENT,ID_TYPE,NAME,ALIAS from OBJ_TREE where ID_PARENT=$fpid"
# foreach {r1} [ db1 $sql4 ] {
# set id [ lindex $r1 0 ]
# set name [ lindex $r1 3 ]
# set str "${header};${id};${name}"
# LogWrite $str
# }
return 0
}
proc GetElem { fpid header } {
global db1
global Num
set sql4 "Select ID,ID_PARENT,ID_TYPE,NAME,ALIAS from OBJ_TREE where ID_PARENT=$fpid"
foreach {r1} [ db1 $sql4 ] {
set id [ lindex $r1 0 ]
set name [ lindex $r1 3 ]
set str "${header};${id};${name}"
LogWrite $str
GetList $id "${str}"
set ret [ GetElem $id $str ]
}
return 0
}
# ===============================================
proc main { } {
# ===============================================
global db1
global db2
global own
global rf
global Num
# avtorization
set tns "rsdu2"
set usr "rsduadmin" ; # sys "rsduadmin" admin nov_ema
set pwd "passme" ; # passme qwertyqaz
set t1 [ clock format [ clock seconds ] -format "%T" ]
set t11 [ clock format [ clock seconds ] -format "%Y%m%d_%H%M%S" ]
#puts "\nstart = $t1"
# Óñòàíàâëèâàåì ñîåäèíåíèå ê ÁÄ
database db1 $tns $usr $pwd
# db1 set autocommit off
set namefile "obj"
# ëîã - ôàéë
set ph [info script]
set md "a+"
if {$ph==""} {
set ph obj_tree_${t11}.log
} else {
set p1 [ file dirname $ph ] ; # [file dirname /foo/bar/grill.txt] -> /foo/bar
set ph [ file join $p1 ${ph} ]_${t11}.log
set md "w+"
}
# -------------------------------------------------------------------------------------------------
set rf [ open $ph $md ]
#set rf stdout ; # вывод в стандартное устройство
# -------------------------------------------------------------------------------------------------
set sql33 "Select ID,ID_PARENT,NAME FROM OBJ_TREE where ID_PARENT is NULL" ;
foreach {r1} [ db1 $sql33 ] {
set id [ lindex $r1 0 ]
set name [ lindex $r1 2 ]
set nm "$id;$name"
LogWrite $nm
GetList $id "${nm}"
set ret [ GetElem $id $nm ]
}
# ===============================================
# Закрываем соединение к БД
# db1 commit
db1 disconnect
close $rf
set t1 [ clock format [ clock seconds ] -format "%T" ]
puts "\nend = $t1"
return 0 ;
}
main
puts "-- End --"