%
sub ver12_20
conn.execute("create table ver (ver char(20))")
conn.execute("insert into ver (ver) values ('2.0')")
conn.execute("create table param (superlevel byte,nosaytime SMALLINT,maxuser SMALLINT,maxtalk SMALLINT,roomkeepexp integer,enlogin bit," &_
"enaddact bit,lseelevel byte,ltt byte,lhtml byte,lkeepuser byte,laddact byte,laddroom byte,lkick byte,llockip byte," &_
"llockuser byte,lcolduser byte,ldelnote byte,ldelroom byte,lmodlevel byte,lseeip byte,envoteonline bit,envoteauto bit," &_
"expauto1 integer,expauto2 integer,expauto3 integer,expauto4 integer)")
conn.execute("insert into param (superlevel,nosaytime,maxuser,maxtalk,roomkeepexp,enlogin," &_
"enaddact,ltt,lseelevel,lhtml,lkeepuser,laddact,laddroom,lkick,llockip,lseeip," &_
"llockuser,lcolduser,ldelnote,ldelroom,lmodlevel,envoteonline,envoteauto," &_
"expauto1,expauto2,expauto3,expauto4) values (15,50,80,50,50000,true," &_
"true,3,4,5,3,10,6,7,8,8," &_
"9,10,9,10,8,true,true," &_
"200,100,400,800)")
conn.execute("update user set user_level=15 where user_level=10")
conn.execute("alter table room ADD COLUMN room_exp integer")
conn.execute("alter table room ADD COLUMN build_time datetime)")
conn.execute("update room set room_exp=0,build_time='"&now()&"'")
end sub
sub ver20_21
conn.execute("update ver set ver='2.1'")
conn.execute("alter table user ADD COLUMN first_ip char(20)")
conn.execute("alter table user ADD COLUMN last_ip char(20)")
conn.execute("update user set first_ip='127.0.0.1',last_ip='127.0.0.1'")
conn.execute("alter table param ADD COLUMN maxroom byte")
conn.execute("alter table param ADD COLUMN ltitle byte")
conn.execute("alter table param ADD COLUMN lallhtml byte")
conn.execute("alter table param ADD COLUMN lmodact byte")
conn.execute("alter table param ADD COLUMN lnote byte")
conn.execute("alter table param ADD COLUMN lvote byte")
for i=2 to 10
conn.execute("alter table param ADD COLUMN exp"&i&" integer")
next
conn.execute("update param set maxroom=10,ltitle=2,lallhtml=10,lmodact=10,lnote=10,lvote=10," &_
"exp2=300,exp3=900,exp4=2700,exp5=8000,exp6=24000,exp7=70000,exp8=140000,exp9=200000,exp10=400000")
end sub
sub ver21_22
conn.execute("update ver set ver='2.2'")
conn.execute("alter table user ADD COLUMN aihaos char(250)")
end sub
sub ver22_23
conn.execute "DROP TABLE helpbody"
conn.execute("update ver set ver='2.3'")
conn.execute("create table friendrq (ID Counter (1, 1) CONSTRAINT pkfrqID PRIMARY KEY,who char(10),towho char(10))")
conn.execute("create table tyrecord (ID Counter (1, 1) CONSTRAINT pktyrID PRIMARY KEY,who char(10),ip char(20),forwhat char(200),tytime datetime)")
conn.execute("alter table user ADD COLUMN friends char(250) ")
conn.execute("create table calls (ID Counter (1, 1) CONSTRAINT pkcallsID PRIMARY KEY,who char(10),towho char(10),callmess char(110),calltime datetime,read bit)")
end sub
on error resume next
err.clear
set rs=conn.execute("select * from ver")
if err then
ver="1.2"
err.clear
else
ver=trim(rs("ver"))
end if
if ver="1.2" then
call ver12_20
call ver20_21
call ver21_22
call ver22_23
if err then
call echoerr("聊天室数据库从ver1.2转换到ver2.3失败!","default.asp")
else
call echoerr("聊天室数据库从ver1.2转换到ver2.3成功!","default.asp")
end if
response.end
elseif ver="2.0" then
call ver20_21
call ver21_22
call ver22_23
if err then
call echoerr("聊天室数据库从ver2.0转换到ver2.3失败!","default.asp")
else
call echoerr("聊天室数据库从ver2.0转换到ver2.3成功!","default.asp")
end if
response.end
elseif ver="2.1" then
call ver21_22
call ver22_23
if err then
call echoerr("聊天室数据库从ver2.1转换到ver2.3失败!","default.asp")
else
call echoerr("聊天室数据库从ver2.1转换到ver2.3成功!","default.asp")
end if
response.end
elseif ver="2.2" then
call ver22_23
if err then
call echoerr("聊天室数据库从ver2.2转换到ver2.3失败!","default.asp")
else
call echoerr("聊天室数据库从ver2.2转换到ver2.3成功!","default.asp")
end if
response.end
else
set rsparam=conn.execute("select * from param")
set rs=conn.execute("select id from room")
if rs.eof or rs.bof then
if request("B1")="提交" then
sUserName=left(trim(request("name")),10)
spass=request("passwd")
if sUserName="" or spass<>request("passwd2") then
call echoerr("用户名为空或密码与确定密码不一致!","default.asp")
response.end
end if
room_name=left(trim(server.HTMLEncode(request("room_name"))),10)
room_owner=sUserName
room_auto=left(trim(server.HTMLEncode(request("room_auto"))),10)
room_des=left(trim(server.HTMLEncode(request("room_des"))),150)
room_title=left(trim(server.HTMLEncode(request("room_title"))),150)
if room_name="" or room_auto="" or room_des="" or room_title="" then
call echoerr("聊天室名、机器人、房间标题和房间描述都不能为空!","default.asp")
response.end
end if
conn.execute("delete from user where username='&sUserName&'")
insert_item="username,passwd,sex,saved,log_time,user_level,visit_num,in_time,out_info,exp_num,out_time,f_size,l_height,n_color,s_color"
sz="'"&sUserName&"','"&trPass(sPass)&"',false,true,'"&now()&"',"&rsparam("superlevel")&", 1,'"&now()&"',0,0,'"&now()&"',4,6,"&Int(Rnd*18)&","&Int(Rnd*18)
conn.Execute("INSERT INTO user ("&insert_item&") VALUES ("&sz&")")
conn.execute("delete from room")
conn.execute("insert into room (room_name,room_owner,room_auto,room_des,room_title,room_keep,room_html,room_exp,build_time,room_time,room_ref) values ('"&room_name&"','admin','"&room_auto&"','"&room_des&"','欢迎您的光临,请文明聊天!^_^',true,true,0,'"&now()&"','"&now()&"','"&room_title&"')")
if err then
call echoerr("聊天室初始配置失败!","default.asp")
else
call echoerr("聊天室初始配置成功!","default.asp")
end if
else%>
定义超级用户
<%end if
else
response.redirect("default.asp")
end if
end if%><%rsparam.close
set rsparam=nothing
rs.close
set rs=nothing
conn.close
set conn=nothing%>