一个操作读写已存在excel 文件的例子
set xlapp = server.createobject("excel .application")
strsource=filepath & "test.xls"'打開一個已經存在的test.xls文件,filepath為物理絕對路徑
xlapp.workbooks.open(strsource)
set xlbook = xlapp.activeworkbook '打開book
set xlsheet = xlbook.worksheets(1) '打開其中的一個sheet
xlsheet.cells(1,1).value="test" '通過設置cell(i,j)里面的i,j來訪問sheet里面任意一個cell
xlbook.save '保存該excel 文件
xlbook.saveas filepath & "test2.xls" '另存一個文件
set xlsheet=nothing '一定要關閉,否則以后會一直存在一個無法釋放的excel 進程
set xlbook=nothing
xlapp.quit
asp運行端的一些設置
1excel 文件所在的路徑目錄,要讓iuser_即asp運行的用戶有讀寫權限,否則
會報錯。
2服務器端還必須要設置com組件的操作權限。在命令行鍵入“dcomcnfg”,
進入com組件配置界面,選擇microsoft excel 后點擊屬性按鈕,將三個單選
項一律選擇自定義,編輯中將everyone加入所有權限。保存完畢后重新啟動
服務器。
如何使用事務處理、存儲過程和視圖?
⑴.使用存儲過程
①.定義好存儲過程
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中調用
use_proc.asp
<!-- #include virtual="/adovbs.inc" -->
<%
set conn=server.createobject("adodb.connection")
conn.open "course_dsn","course_user","course_password "
'使用recordset調用帶兩個輸入參數和返回紀錄集的存儲過程
'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 "普通的調用方法:<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調用無輸入參數,返回紀錄集的存儲過程,可以使用recordcount等屬性
'create procedure [user_info_3] as
'select * from user_info
response.write "<br>返回紀錄集,可以使用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調用帶輸出參數的存儲過程
'create procedure [output_1]
'@sid int output
'as
'set @sid=2
response.write "<br><br>調用帶輸出參數的存儲過程:<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調用帶兩個輸入參數和返回值的存儲過程
'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>調用帶兩個輸入參數和返回值的存儲過程:<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時,出現如下
普通的調用方法:
12
返回紀錄集,可以使用recordcount等屬性:
ahyi
tet
tuth
調用帶輸出參數的存儲過程:
2
調用帶兩個輸入參數和返回值的存儲過程:
1
注意:若存儲過程無參數,則調用的sql語句綜合 直接為存儲過程名,一個參數為“存儲過程名 參數”,若是多個參數,則“存儲過程名 參數1,參數2,……,參數n”;如果在sql語句綜合 中加入exec,則在返回的記錄集中可以使用recordcount等屬性;如果想獲得存儲過程的返回值或輸出參數,可以使用command對象。
⑵.使用事務處理
①.asp內嵌的事務支持
例子:
use_transaction_1.asp
<%
'asp中使用事務
set conn=server.createobject("adodb.connection")
conn.open "course_dsn","course_user","course_password "
conn.begintrans '開始事務
sql="delete from user_info"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,3
if conn.errors.count>0 then '有錯誤發生
conn.rollbacktrans '回滾
set rs=nothing
conn.close
set conn=nothing
response.write "交易失敗,回滾至修改前的狀態!"
response.end
else
conn.committrans '提交事務
set rs=nothing
conn.close
set conn=nothing
response.write "交易成功!"
response.end
end if
%>
②.其他數據庫 級的事務
i.創建存儲過程
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中調用
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
%>
討論:兩種方式的優劣?
⑶.使用視圖
在其他數據庫 中定義好視圖之后,在asp中如同使用一個表一樣來使用視圖
轉載于:https://www.cnblogs.com/ince/p/9156687.html
總結
以上是生活随笔為你收集整理的一个操作读写已存在excel 文件的例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java string 转化为date
- 下一篇: C++程序设计基础(8)main函数