一个操作读写已存在excel 文件的例子
set xlapp = server.createobject("excel .application")
strsource=filepath & "test.xls"'打開一個(gè)已經(jīng)存在的test.xls文件,filepath為物理絕對(duì)路徑
xlapp.workbooks.open(strsource)
set xlbook = xlapp.activeworkbook '打開book
set xlsheet = xlbook.worksheets(1) '打開其中的一個(gè)sheet
xlsheet.cells(1,1).value="test" '通過設(shè)置cell(i,j)里面的i,j來訪問sheet里面任意一個(gè)cell
xlbook.save '保存該excel 文件
xlbook.saveas filepath & "test2.xls" '另存一個(gè)文件
set xlsheet=nothing '一定要關(guān)閉,否則以后會(huì)一直存在一個(gè)無法釋放的excel 進(jìn)程
set xlbook=nothing
xlapp.quit
asp運(yùn)行端的一些設(shè)置
1excel 文件所在的路徑目錄,要讓iuser_即asp運(yùn)行的用戶有讀寫權(quán)限,否則
會(huì)報(bào)錯(cuò)。
2服務(wù)器端還必須要設(shè)置com組件的操作權(quán)限。在命令行鍵入“dcomcnfg”,
進(jìn)入com組件配置界面,選擇microsoft excel 后點(diǎn)擊屬性按鈕,將三個(gè)單選
項(xiàng)一律選擇自定義,編輯中將everyone加入所有權(quán)限。保存完畢后重新啟動(dòng)
服務(wù)器。
如何使用事務(wù)處理、存儲(chǔ)過程和視圖?
⑴.使用存儲(chǔ)過程
①.定義好存儲(chǔ)過程
create procedure [output_1]
@sid int output
as
set @sid=2
create procedure [return_1]
(@user_name varchar(40),@password varchar(20))
as
if exists(select id from user_info where user_name=@user_name and password =@password )
return 1
else
return 0
create procedure [user_info_1]
(@user_name varchar(40),@password varchar(20))
as
select id from user_info where user_name=@user_name and password =@password
create procedure [user_info_2]
(@user_name varchar(40),@password varchar(20))
as
set xact_abort on
begin transaction
delete from user_info where user_name=@user_name and password =@password
commit transaction
set xact_abort off
create procedure [user_info_3] as
select * from user_info
②.在asp中調(diào)用
use_proc.asp
<!-- #include virtual="/adovbs.inc" -->
<%
set conn=server.createobject("adodb.connection")
conn.open "course_dsn","course_user","course_password "
'使用recordset調(diào)用帶兩個(gè)輸入?yún)?shù)和返回紀(jì)錄集的存儲(chǔ)過程
'create procedure [user_info_1]
'(@user_name varchar(40),@password varchar(20))
'as
'select id from user_info where user_name=@user_name and password =@password
response.write "普通的調(diào)用方法:<br>"
set rs=server.createobject("adodb.recordset")
sql="user_info_1 '"&request.querystring("user_name")&"','"&request.querystring("password ")&"'"
rs.open sql,conn,1,1
response.write rs("id")&"<br>"
rs.close
'使用recordset調(diào)用無輸入?yún)?shù),返回紀(jì)錄集的存儲(chǔ)過程,可以使用recordcount等屬性
'create procedure [user_info_3] as
'select * from user_info
response.write "<br>返回紀(jì)錄集,可以使用recordcount等屬性:"
sql="exec user_info_3"
rs.open sql,conn,1,1
for i=1 to rs.recordcount
response.write "<br>"&rs("user_name")
rs.movenext
next
rs.close
set rs=nothing
'使用command調(diào)用帶輸出參數(shù)的存儲(chǔ)過程
'create procedure [output_1]
'@sid int output
'as
'set @sid=2
response.write "<br><br>調(diào)用帶輸出參數(shù)的存儲(chǔ)過程:<br>"
set cmd=server.createobject("adodb.command")
cmd.activeconnection=conn
cmd.commandtext = "output_1"
cmd.parameters.append cmd.createparameter("@sid",adinteger,adparamoutput)
cmd("@sid")=10
cmd.execute()
bbb=cmd("@sid")
response.write bbb&"<br>"
set cmd=nothing
'使用command調(diào)用帶兩個(gè)輸入?yún)?shù)和返回值的存儲(chǔ)過程
'create procedure [return_1]
'(@user_name varchar(40))
'as
'if exists(select id from user_info where user_name=@user_name)
'return 1
'else
'return 0
response.write "<br>調(diào)用帶兩個(gè)輸入?yún)?shù)和返回值的存儲(chǔ)過程:<br>"
set cmd=server.createobject("adodb.command")
cmd.activeconnection=conn
cmd.commandtype = adcmdstoredproc
cmd.commandtext = "return_1"
cmd.parameters.append cmd.createparameter("@return_value",adinteger,adparamreturnvalue)
cmd.parameters.append cmd.createparameter("@user_name",advarchar,adparaminput,40)
cmd.parameters.append cmd.createparameter("@password ",advarchar,adparaminput,20)
cmd("@user_name")="tuth"
cmd("@password ")="yyuyu"
cmd.execute()
rrr=cmd("@return_value")
response.write rrr
set cmd=nothing
conn.close
set conn=nothing
%>
效果:
訪問http://10.1.43.238/course/use_proc.asp?user_name=ahyi&password =ttt時(shí),出現(xiàn)如下
普通的調(diào)用方法:
12
返回紀(jì)錄集,可以使用recordcount等屬性:
ahyi
tet
tuth
調(diào)用帶輸出參數(shù)的存儲(chǔ)過程:
2
調(diào)用帶兩個(gè)輸入?yún)?shù)和返回值的存儲(chǔ)過程:
1
注意:若存儲(chǔ)過程無參數(shù),則調(diào)用的sql語句綜合 直接為存儲(chǔ)過程名,一個(gè)參數(shù)為“存儲(chǔ)過程名 參數(shù)”,若是多個(gè)參數(shù),則“存儲(chǔ)過程名 參數(shù)1,參數(shù)2,……,參數(shù)n”;如果在sql語句綜合 中加入exec,則在返回的記錄集中可以使用recordcount等屬性;如果想獲得存儲(chǔ)過程的返回值或輸出參數(shù),可以使用command對(duì)象。
⑵.使用事務(wù)處理
①.asp內(nèi)嵌的事務(wù)支持
例子:
use_transaction_1.asp
<%
'asp中使用事務(wù)
set conn=server.createobject("adodb.connection")
conn.open "course_dsn","course_user","course_password "
conn.begintrans '開始事務(wù)
sql="delete from user_info"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,3
if conn.errors.count>0 then '有錯(cuò)誤發(fā)生
conn.rollbacktrans '回滾
set rs=nothing
conn.close
set conn=nothing
response.write "交易失敗,回滾至修改前的狀態(tài)!"
response.end
else
conn.committrans '提交事務(wù)
set rs=nothing
conn.close
set conn=nothing
response.write "交易成功!"
response.end
end if
%>
②.其他數(shù)據(jù)庫 級(jí)的事務(wù)
i.創(chuàng)建存儲(chǔ)過程
create procedure [user_info_2]
(@user_name varchar(40),@password varchar(20))
as
set xact_abort on
begin transaction
delete from user_info where user_name=@user_name and password =@password
commit transaction
set xact_abort off
ii.在asp中調(diào)用
use_transaction_2.asp
<%
set conn=server.createobject("adodb.connection")
conn.open "course_dsn","course_user","course_password "
sql="user_info_2 '"&request.querystring("user_name")&"','"&request.querystring("password ")&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
set rs=nothing
conn.close
set conn=nothing
%>
討論:兩種方式的優(yōu)劣?
⑶.使用視圖
在其他數(shù)據(jù)庫 中定義好視圖之后,在asp中如同使用一個(gè)表一樣來使用視圖
轉(zhuǎn)載于:https://www.cnblogs.com/ince/p/9156687.html
總結(jié)
以上是生活随笔為你收集整理的一个操作读写已存在excel 文件的例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java string 转化为date
- 下一篇: C++程序设计基础(8)main函数