① EOS資料庫連接關閉原因
EOS資料庫連接關閉原因:釋放系統資源,不用的連接該及時關閉,是良好的編程習慣。
sqlDataSource 控制項使用 ADO.NET 類與 ADO.NET 支持的任何資料庫進行交互。這類資料庫包括 Microsoft SQL Server(使用 System.Data.SqlClient 提供程序)、System.Data.OleDb、System.Data.Odbc 和 Oracle(使用 System.Data.OracleClient 提供程序)。
並定義使用數據的 SQL 語句或存儲過程即可。在運行時,SqlDataSource 控制項會自動打開資料庫連接,執行 SQL 語句或存儲過程,返回選定數據(如果有),然後關閉連接。
存儲結構:
關系型資料庫按照結構化的方法存儲數據, 每個數據表都必須對各個欄位定義好(也就是先定義好表的結構),再根據表的結構存入數據,這樣做的好處就是由於數據的形式和內容在存入數據之前就已經定義好了,所以整個數據表的可靠性和穩定性都比較高。
但帶來的問題就是一旦存入數據後,如果需要修改數據表的結構就會十分困難。而NoSQL數據由於面對的是大量非結構化的數據的存儲,它採用的是動態結構,對於數據類型和結構的改變非常的適應,可以根據數據存儲的需要靈活的改變資料庫的結構。
② 普元EOS使用的優缺點
普元EOS使用的優缺點:
1、優點:
EOS有自己的理論基礎:面向構件所謂面向構件就是指:定義一個結構(可以認為是一個函數一樣的東西)。在結構中,定義輸入和輸出,就形成了一個構件。
每一個Http訪問,會建立一個線程級(ThreadLocal)的變數,裡面存放一棵xml樹。在這個線程的運行過程中,會不停的增加,修改,查詢定位樹中的節點。這個過程使用xpath實現。據說xpath部分是他們自己重寫過的,為了提高效率;
EOS的開發很方便,它已經定義好了很多構件,比如資料庫存儲構件(實際上是一組static的sql方法),只需要畫圖就可以完成一個功能。所以它的開發速度非常快;
EOS有一套完整的調試,發布,管理機制,它甚至有自己的Server,所以管理也是比較方便的。
EOS有內嵌的工作流系統,只需要畫畫圖就可以完成工作流的設計;
構件可以極為方便地發布為webservice、可以較為方便地開發簡單的基於資料庫的web應用。
所提供的構件,都是經過廠商嚴格測試的,適用起來放心,圖形化工具讓出錯的可能性降低了不少;
2、缺點:
從技術角度及員工發展角度看,使用它的人,感覺自己的擇業競爭力在一點點消失;
從工具角度看,EOS充其量是一個開發平台,不是其所吹噓的SOA業務平台,所有的業務開發不能提供任何可用的業務框架。都要EOS的開發人員進行血和淚的總結後,再開發;
從系統角度看,EOS上開發的東西無任何移值的可能,你在EOS上開發了一個滿意的模塊,想使用到其它非EOS項目中,是完全不可能的。這對一個想做積累的公司或個人來說是個災難;
相對於OO和J2EE傳統開發,EOS易於上手,學習曲線較短。但是這一點有爭議,EOS的知識不具備通用性。
EOS頁面的開發很不方便,雖然有RIA的支持感覺沒有其所吹噓的那麼好使小結現在市場上用得最多的還是EOS5,這個版本出來的時候是2005年,在當時而言,WEB開發平台有那麼強已是很不錯的,今年發布的EOS6,在目前來說,不說國際,至少國內沒有一家能到比它好的。
EOS5和EOS6表面上看區別不大,都是構件組裝,實際上有很大的區別:在EOS5中,數據傳遞用的就是XML,但在6中使用JAVA對象,關這一變化,對性能就有一個質的飛躍。
另外他是符合SCA和SDO標准,至少可以表現出他是一個開放的東西,不是閉門造車。如果軟體是來規范業務的,EOS還是不錯地;如果軟體是來被使用者或者決策者肆虐的,EOS則沒有價值。
(2)eos調用存儲過程擴展閱讀:
PrimetonEOSPlatform是SOA應用平台。PrimetonEOSPlatform基於J2EE、Eclipse等開放的技術和平台,採用了先進的SOA架構和標准規范,並通過構件化、圖形化、一體化的平台產品。
為構造SOA應用提供了從設計、開發、調試和部署,到運行、維護、管控和治理的全生命周期支持。
EOSStudio:EOSStudio是集面向構件應用的設計、開發、組裝、調試、維護、部署、管理和發布於一體的集成開發環境,提供對SOA應用和服務全生命周期的開發、維護和管理。
③ eos 5d mark2相機無法訪問儲存卡不
解決方法如下:
在使用佳能相機過程中,有時會出現」存儲卡錯誤「的提示,此時由於存儲介質故障導致相機無法正常使用,對此該如何解決呢?
1、首先,當相機提示」存儲卡錯誤「時,我們可以嘗試重新插拔一下手機SD卡,查看能夠解決故障。
2、同時我們可以嘗試利用電腦備份一下相機SD卡,然後利用相機對Sd卡進行一次低格格式化操作。
3、利用硬體替換法來排除SD卡故障:給相機安裝一張新的SD卡看相機能否正常拍照,如果能則說明原來相機能存卡有故障。
4、當相機內存卡有故障時通常是由於文件系統破壞所造成的,對應的解決方法是:利用電腦對手機內存卡實行低級格式化操作。通過讀卡器或者內存卡介面連接相機SD卡。
5、待相機SD卡盤符出現後右擊從彈出右鍵菜單中選擇格式化項,以便執行低級格式操作。
6、從打開的格式化對話框中,清除勾選「快速格式化」,
最後點擊「格式化」按鈕,
這樣就可以對內存卡執行格式化操作了。
7、將格式化後的內存卡安裝到相機中,就會發現相機可以正常使用了。當然也可以將之前備份的相機資料重新拷貝到已格式化的內存卡中,已實現資料的恢復操作。
④ tokenpocket
一、可通過聯系人直接進行轉賬
1、轉賬和收款,是每個數字錢包最常用的功能,也是基礎功能。在TokenPocket 錢包過程中,除了使用密碼外,也可以開啟指紋識別,以後交易時不用輸入密碼,直接使用指紋驗證就可以,安全而又快捷。
TokenPocket 錢包還支持延遲交易,即指定在未來某一天的某個時間點進行交易。設置也很簡單,只要在設定好時間就可以了。如果你想在你女朋友生日那天的0點鍾轉入100EOS當作生日禮物,是不是就可以使用延遲交易功能還可以使用 memo 留下你愛的表白,而且將永遠記錄在區塊鏈上。
2、在使用 TokenPocke 錢包收款時,既可以復制收款的EOS賬戶發給對方,也可以生成二維碼,然後把二維碼發給對方,對方可以直接掃描二維碼,從而防止輸錯EOS賬號地址。TokenPocket 錢包有個小細節做的很好,當收款金額輸入後,生成的收款二維包括了EOS賬戶地址和收款金額。這樣當對方轉賬的時候,金額也不用輸入了。無論是數字貨幣的轉賬還是收款,是不是很像我們在日常生活中常用的微信支付?區塊鏈技術越來越接近我們的生活。
二、集成CPU/NET 和 RAM資源管理功能
1、EOS 資源包括 CPU/NET 資源和 RAM 資源,CPU/NET資源是需要向系統抵押EOS而獲取,而RAM則是需要向系統購買而獲得。TokenPocket 錢包把 CPU/NET 和 RAM資源管理功能集成在一起了,這樣方便切換管理,有些EOS錢包把CPU/NET和RAM 資源功能管理功能分開了,其實 TokenPocket 的設計更符合邏輯,畢竟 CPU/NET 和 RAM 都是屬於 EOS主網的資源。在抵押資源時,可以給賬戶本身抵押,也可以給其他EOS賬戶抵押,TokenPocket 抵押功能的設計,把給自己抵押和他人抵押整合在一起了,可以隨時切換。
2、在給他人抵押時,可以選擇租借和過戶,選擇租借代表只是抵押資源,EOS的所有權並未出讓,如果選擇過戶,在給他人EOS賬戶抵押資源時,抵押資源部分的EOS也被轉入了他人賬戶。我們在抵押時,一定要看清楚。TokenPocket 的租借列表功能很實用,列出了該賬戶目前租借資源出去的所有EOS賬戶及相關租借信息,通過租借列表,可以單獨贖回租借給某一個EOS賬戶的資源,也可以多選或者全選後進行統一的贖回操作。資源管理中,除了 CPU/NET 的資源抵押和贖回功能外,還可以進行內存(RAM)的交易,RAM 是 EOS 的存儲資源,它是通過向EOS系統購買而獲取的,也可以出售給EOS系統。RAM 的價格採用的是 Bancor 演算法。
⑤ EOS的開發流程
創建一個引用EOS報表構件包的項目。引用該構件包後,即可在此項目上創建報表模板,以及調用報表運算邏輯。用戶也可以現有項目上添加引用報表構件包。
2. 創建報表模板。
o 確定資料庫的連接方式。
o 在報表模板中定製數據的匯總、統計。
o 確定最終顯示樣式。
3. 開發JSP,展現邏輯,業務邏輯。
實現數據的提取、顯示、列印、導出等功能。
4. 調試發布。 1. 根據調用位置的不同,調用EOS報表的方式有兩種:
o 在JSP頁面上調用tag。
o 在業務邏輯中調用EOS報表的運算邏輯。
2. 根據資料庫的連接方式分為:
o JDBC/XML數據源。
o EOS數據源。 一般情況下,報表都是一組有條件的查詢結果,下面將用四個示例分別介紹針對同一需求的四種不同開發方式。
用戶需求如下:
查詢現有系統中的用戶角色和用戶信息,以報表的形式展示出某些角色所對應的用戶名和用戶ID。既可以查詢某一角色對應的用戶信息,也可以查詢所有角色對應的用戶信息,並可以將查詢結果列印或導出到EXCEL中。
案例分析:
1. 查詢要求
o 要求實現條件查詢,條件為角色。
o 分組顯示,按角色分組。
o 可以以html,applet,excel格式返回結果集。
2. 實現要點
o 需要創建條件查詢頁面,做為用戶查看報表的入口,在該頁面需要實現:選擇角色、選擇結果的顯示格式。
o 需要實現分組顯示,該功能在報表模板中實現。
o 需要設定顯示格式,該功能在結果頁面完成。
o 數據的提取可以由結果頁面直接調用報表模板實現,也可以由後台調用「展現邏輯+業務邏輯」的方式實現。
3. 表結構和數據顯示
以下關聯的三個表均為eos的系統表。
查詢SQL語句如下:
select
o.userid,o.operatorname,r.rolename
from
EOSOPERATOR o,
EOSOPERATORROLE eor,
EOSROLE r
where
o.operatorid=eor.operatorid and
eor.roleid=r.roleid and
r.rolename like '%'
order by r.rolename
4. 實現結果展示
o 查詢條件頁面
o 查詢結果頁面
⑥ 求解佳能相機無法訪問存儲卡
佳能相機與其他相機都一樣,自身雖然帶有存儲器,但其性質只是緩存,無法長期保存拍攝的照片。……因此,相機需要另外配存儲卡來作為存儲照片的存儲器。
相機使用的存儲卡有多種類型,大多數情況下採用的是SD卡,另外也有採用CF卡等其他規格的存儲卡的情況。
這些存儲卡雖然規格不同,但是有一點是相同的……都是通過相機機身上的卡槽與相機連接來實現訪問的。
有些相機只有一個卡槽,只能裝一塊存儲卡。……有的相機有雙卡槽,可以裝兩塊存儲卡。……這兩塊存儲卡可以是相同類型的存儲卡,也可能是不同類型的存儲卡。
在實際使用中,有時候會出現相機無法訪問存儲卡的情況。造成這種現象的原因,大致有以下幾種:
1,存儲卡損壞。
相機無法訪問存儲卡最可能的原因,就是存儲卡本身有故障。
由於存儲卡是快閃記憶體性質的存儲器,所以存在損壞的可能。……一旦存儲卡有問題,就會出現讀寫不正常,甚至無法訪問的情況。
解決這類問題的方法,就是對其進行格式化。……如果問題依舊不能解決,那就說明存儲卡徹底損壞,只能換塊新卡了。
2,相機存儲卡卡槽損壞。
相機與存儲卡連接,是通過存儲卡卡槽來實現的。
這個卡槽,是通過有彈性的觸點與存儲卡上面的觸點連接,實現相機與存儲卡的互聯的。
一旦存儲卡卡槽損壞,就會造成相機無法訪問存儲卡的故障。
由於相機存儲卡卡槽是位於相機機身內部的,因此用戶自己是無法處理這類故障的,只能將相機拿到官方售後那裡進行檢測、維修。
3,相機與存儲卡兼容性不佳。
相機所使用的存儲卡,其兼容性是一般來說有保障的。……畢竟其使用用途就是供各種類型的相機使用。
但是,由於生產過程中產生的缺陷等原因,某些存儲卡可能出現兼容性問題,導致相機無法訪問。
遇到這種存儲卡,只能換一塊新卡了。
4,存儲卡在其他設備上做過格式化。
相機使用的操作系統,是類似於Unix的操作系統。與其他設備(比如電腦)的操作系統不兼容。
於是,相機使用的存儲卡必須在相機上做格式化以後才能正常訪問。
如果這塊存儲卡在其他設備上進行過格式化,其文件格式將發生改變,再裝回到相機上就可能無法訪問了。
解決此類問題的方法,就是在相機上重新進行格式化。
5,相機本身有故障。
這類問題就很容易理解了。……相機本體有故障,無法完成正常的數據讀寫操作,於是就會出現無法訪問存儲卡的現象。
這類故障需要去相機生產廠家的官方售後進行檢測、維修。
⑦ access2003中的getrs()
《ASP編程大全》在此誰敢不從!
1.提取欄位列表
//<%
Set cn=Server.CreateObject("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;Data Source=localhost;" & _
"Initial Catalog=pubs;User ID=sa;Password="
Set rs=cn.Execute("Select * from authors")
While Not rs.EOF
Response.Write rs("au_fname")
rs.MoveNext
Wend
rs.Close
cn.Close
//%>
2.返回數據集函數
Public Function GetData() As ADODB.Recordset
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn=CreateObject("ADODB.Connection")
cn.Open "Provider=SQLOLEDB;Data Source=localhost;" & _
"Initial Catalog=pubs;User ID=sa;Password="
Set rs=CreateObject("ADODB.Connection")
rs.LockType=adLockBatchOptimistic
rs.CursorLocation=adUseClient
rs.CursorType=adOpenStatic
rs.Open "Select * from authors",cn
Set rs.ActiveConnection=Nothing
cn.Close
Set cn=Nothing
Set GetData=rs
End Function
3.從XML文件中讀取數據
<!-- Metadata type="typelib" file="c:\program files\common files\system\ado\msado15.dll"-->
<%
'response.write admoderead & " " & adopenstreamfromurl
'response.End()
set rs = server.CreateObject("adodb.recordset")
Set stmData = Server.CreateObject("ADODB.Stream")
stmData.Charset="gb2312"'這一句很重要,否則會報一個錯誤。Recordset cannot be created from the specified source. The source file or stream must contain Recordset data in XML or ADTG format.移山祝大家好運^_^
xmbm = request.QueryString("xmbm")
if xmbm = "" then xmbm = "110100001"
Dim result
dim xml, XMLlength
Set DCOMServer = CreateObject("RemObjects.SDK.COMServer")
DCOMServer.MessageType = "TROBINMessage"
DCOMServer.ChannelType = "TROWinInetHTTPChannel"
DCOMServer.SetChannelProperty "TargetURL", ""
Set DCOMService = DCOMServer.CreateService("DCOMService")
xml = cstr("<?xml version="&chr(34)&"1.0"&chr(34)&" encoding="&chr(34)&"gb2312"&chr(34)&" ?>" & chr(13)&chr(10))
xml = xml & cstr(DCOMService.GetItem(xmbm))'用於生成XML主體的DCOM服務,實際中請靈活運用。
Set MegaDemoService = nothing
'response.write xml
'response.End()
stmData.Open
stmData.WriteText xml
stmData.SetEOS
'stmData.SaveToFile server.MapPath("zzzz"&session.SessionID&".xml"),2
'response.End()
stmData.Position = 0
rs.open stmData
if not rs.eof then
response.write "<table border = 1 cellpadding=5 cellspacing=0 bordercolor=black style='border-collapse:collapse;'><tr bgcolor='#ddddeee'>"
for each fld in rs.fields
response.write "<td>" & fld.name & "</td>"
next
response.write "</tr>"
do while not rs.eof
response.write "<tr>"
for each fld in rs.fields
response.write "<td>" & fld.value & "</td>"
next
response.write "</tr>"
rs.movenext
loop
end if
rs.close
set rs = nothing
%>
自動顯示RecordSet的表格
<script language=jscript runat=server>
// ************************************************************************
// Script Compont Object Model
// Design for Active Server Pages
//
// Copyright 2003 Version 1.0
// Made by 尹曙光
// ************************************************************************
//用於顯示一個recordset中的數據,可以指定顏色和樣式
//介面函數
function createJDBList(){
var objJDBlist=new JDBlist
objJDBlist.create()
return objJDBlist
}
//類體定義
function JDBlist(){
this.AdoRecordSet
this.Width
this.Border
this.Cellspacing
this.Cellpadding
this.Class
this.TitleClass
this.FirstColor
this.SecondColor
this.create=_JDBlist_Create
this.display=_JDBlist_Display
}
//方法實現
function _JDBlist_Create(){
this.AdoRecordSet=""
this.Width="100%"
this.Border="1"
this.Cellspacing="0"
this.Cellpadding="1"
this.Class=""
this.TitleClass=''
this.FirstColor=''
this.SecondColor=''
}
function _JDBlist_Display(){
var htmlDSO = '';
var nFields = this.AdoRecordSet.Fields.Count;
if (nFields)
{
var n = 0;
htmlDSO += '<' + 'table width="'+this.Width+'" id="'+this.Id+'" Cellspacing="'+this.Cellspacing+'" Cellpadding="'+this.Cellpadding+'" Border="'+this.Border+'" Class="'+this.Class+'">\n';
htmlDSO += '<' + 'tr>';
for (var i=0; i < nFields; i++)
{
htmlDSO += '<' + 'td class="'+this.TitleClass+'">' + this.AdoRecordSet(i).name + '<' + '/td>';
}
htmlDSO += '<' + '/tr>\n';
if (!(this.AdoRecordSet.EOF&&this.AdoRecordSet.Bof))
this.AdoRecordSet.MoveFirst()
else
htmlDSO += '<' + 'td colspan="'+nFields+'" align="center">沒有數據!<' + '/td>'
var rcc=0
while (!this.AdoRecordSet.EOF)
{ // add each record to table
if (rcc%2==0)
htmlDSO += '<' + 'tr bgcolor="'+this.FirstColor+'">';
else
htmlDSO += '<' + 'tr bgcolor="'+this.SecondColor+'">';
for (var i=0; i < nFields; i++)
{
htmlDSO += '<' + 'td >' + this.AdoRecordSet(i).value + '<' + '/td>';
}
htmlDSO += '<' + '/tr>\n';
this.AdoRecordSet.MoveNext();
rcc++
}
htmlDSO += '<' + '/table>';
}
Response.Write(htmlDSO);
}
</script>
4.把數據寫入XML文件
<%
class autoXML
Private xmldoc
Private xmlfile
Sub Class_Initialize()
set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async = fasle
End Sub
Sub Class_Terminate()
set xmldoc = Nothing
End Sub
Public Property Let filePath(str)
xmlfile = str
End Property
Sub getRs(rs)
dim xmlhead
dim pNode,sNode
dim aNode,tNode
dim tableName
dim rf
dim i
set xmlhead = xmldoc.createProcessingInstruction("xml","version=""1.0"" encoding=""GB2312""")
xmldoc.insertBefore xmlhead,xmldoc.childNodes(0)
tableName = split(rs.Source,chr(32))
set pNode = xmldoc.CreateElement(tableName(3))
xmldoc.appendChild pNode
redim aNode(rs.Fields.Count-1)
do while not rs.eof
set sNode = xmldoc.CreateElement(tableName(3)&"list")
pNode.appendChild sNode
for i=0 to rs.Fields.Count-1
if rs.Fields(i).Name=tableName(3) then
tNode = rs.Fields(i).Name&"Child"
else
tNode = rs.Fields(i).Name
end if
set aNode(i) = xmldoc.CreateElement(tNode)
sNode.appendChild aNode(i)
if rs.Fields(i).value<>"" then
aNode(i).text = rs.Fields(i).value
end if
next
rs.movenext
loop
End Sub
Function saveFile()
on error resume next
xmldoc.save xmlfile
saveFile = (err.number=0)
End Function
End Class
%>
調用,把調用recordset就可以了。
<%
dim conn
set conn = Server.CreateObject("adodb.connection")
conn.open "Provider=Microsoft.jet.oledb.4.0;data source="&Server.MapPath("db.mdb")
dim rs,sql
set rs = Server.CreateObject("adodb.recordset")
sql = "select * from news"
rs.Open sql,conn,3,2
dim ixml
dim xf
set ixml = new autoXML
xf = "test.xml"
ixml.filePath = Server.MapPath(xf)
ixml.getRs(rs)
if ixml.saveFile() then
response.write "<a href=""" & Server.URLEncode(xf) & """>保存完畢</a>"
else
response.write "保存文件錯誤"
end if
set ixml = Nothing
rs.close
set rs = Nothing
%>
4.1
方法二:
<%
dim strConn,conn,cmd,xmldoc
dim strSql,strQuery,stm
strTableName="test1"
strConn="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=SHISM;password="
set conn=server.CreateObject("adodb.connection")
conn.CursorLocation = 3
conn.Open strConn
function getXml(strQuery,conn)
dim xmldoc,cmd,stm
set cmd=server.CreateObject("adodb.command")
cmd.ActiveConnection=conn
strQuery="<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql'><sql:query>" & strQuery & "</sql:query></ROOT>"
set stm=server.CreateObject("adodb.stream")
stm.Open
stm.WriteText strQuery,0
stm.Position=0
cmd.CommandStream=stm
cmd.Dialect = ""
set xmldoc=server.CreateObject("msxml2.domdocument")
cmd.Properties("Output Stream") = xmldoc
cmd.Execute ,,1024
getXml=xmldoc.xml
set cmd=nothing
set xmldoc=nothing
set stm=nothing
end function
strQuery="select * from test1 for xml auto"
Response.Write getXml(strQuery,conn)
%>
4.2
<script language="jscript" runat="server">
var conn = new ActiveXObject("adodb.connection")
conn.open("Provider=Microsoft.jet.oledb.4.0;data source="+Server.MapPath("db.mdb"))
var sql = "select distinct province from allcity"
var rs = conn.Execute(sql)
var xmldoc = new ActiveXObject("Microsoft.XMLDOM")
xmldoc.async = false
var xmlhead = xmldoc.createProcessingInstruction('xml','version="1.0" encoding="GB2312"')
xmldoc.insertBefore(xmlhead,xmldoc.childNodes(0))
var root = xmldoc.createElement("root")
xmldoc.appendChild(root)
do{
var province = xmldoc.createElement("province")
province.text = rs("province")
root.appendChild(province)
var osql = "select distinct city from allcity where province='"+rs("province")+"'"
var ors = conn.Execute(osql)
do{
var city = xmldoc.createElement("city")
city.text = ors("city")
province.appendChild(city)
var mysql = "select college from allcity where city='"+ors("city")+"'"
var myrs = conn.Execute(mysql)
do{
var college = xmldoc.createElement("college")
college.text = myrs("college")
city.appendChild(college)
myrs.movenext()
}while(!(myrs.eof||myrs.bof))
myrs.Close()
ors.movenext()
}while(!(ors.eof||ors.bof))
ors.Close()
rs.movenext()
}while(!(rs.eof||rs.bof))
xmldoc.save(Server.MapPath("allcity.xml"))
Response.Write("創建成功!")
</script>
5.遍歷XML文檔
<%@ Language=VBScript %>
<% Option Explicit %>
<table border="1"><tr><th>Name</th><th>Number of Songs</th></tr>
<%
Dim objParser,objRoot,objNode,i
Set objParser=Server.CreateObject("MSXML.DOMDocument")
objParser.Load(Server.MapPath(%%1)) //"albums.xml"
Set objRoot=objParser.documentElement
For i=0 To (objRoot.childNodes.length-1)
If objRoot.childNodes.Item(i).baseName="album" Then
Set objNode=objRoot.childNodes.Item(i)
Response.Write "<tr><td>"
Response.Write objNode.getAttribute("name") & "</td><td align='center'>"
Response.Write objNode.childNodes.length
End if
Next
%>
</td></tr>
</table>
6.搜索XML元素
<%@ Language=VBScript %>
<% Option Explicit %>
//<%
Dim objDocument,objRoot,objNode,objNodeList
Set objDocument=Server.CreateObject("MSXML.DOMDocument")
objDocument.Load(Server.MapPath(%%1)) //"albums.xml"
Set objRoot=objDocument.docmentElement
Set objNodeList=objRoot.SelectNodes("//ablum[@artist='" & Request.Form("artist") & "']")
If objNodeList.length=0 Then
Response.Write "No matches"
Else
Response.Write "<table border='1'><tr><th>Album</th><th>Year</th></tr>"
For each objNode in objNodeList
Response.Write "<tr><td>" & objNode.getAttribute("name")
Response.Write "</td><td>" & objNode.getAttribute("releaseDate") & "</td></tr>"
Next
Response.Write "</table>"
End If
End If
//%>
7.下載文件
<%@ Language=VBScript %>
<% Option Explicit %>
//<%
call downloadFile(replace(Request("file"),"",""))
Function downloadFile(strFile)
' make sure you are on the latest MDAC version for this to work
' get full path of specified file
strFilename = server.MapPath(strFile)
' clear the buffer
Response.Buffer = True
Response.Clear
' create stream
Set s = Server.CreateObject("ADODB.Stream")
s.Open
' Set as binary
s.Type = 1
' load in the file
on error resume next
' check the file exists
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(strFilename) then
Response.Write("<h1>Error:</h1>" & strFilename & " does not exist<p>")
Response.End
end if
' get length of file
Set f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
if err then
Response.Write("<h1>Error: </h1>" & err.Description & "<p>")
Response.End
end if
' send the headers to the users browser
Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name
Response.AddHeader "Content-Length", intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' output the file to the browser
Response.BinaryWrite s.Read
Response.Flush
' tidy up
s.Close
Set s = Nothing
End Function
//%>
8.調用存儲過程查詢
<%@ Language=VBScript %>
<% Option Explicit %>
//<%
dim db,conn,myconn
db="/database/proct.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
myconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open MyConn
dim rs
dim sql
dim keyword
dim choose
keyword=request("keyword") '接收頁面傳送的值
choose=request("choose")
set rs=server.createobject("adodb.recordset")
sql="exec tse" '用exec執行tse存儲過程,把keyword,choose給存儲過程傳遞參數
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write("沒有任何記錄!")
response.end
end if
response.write"搜索到的記錄如下:<br><br>"
do until rs.eof
response.write""&rs("id")&":"&rs("title")&"" '列印出文章的ID和標題
response.write"<br><br>"
rs.movenext
loop
'打掃戰場
rs.close
conn.close
set rs=nothing
set conn = nothing
//%>
9.參數存儲過程查詢
'存儲過程:
'在SQL中建立dbo.tse存儲過程
CREATE PROCEDURE [dbo].[tse]
@keyword varchar(20)=null, '定義查詢的關鍵字
@choose int=null '定義查詢的類型(1為查詢列title,其他為content)
as
if @choose=1
select * from web where title like @keyword + '%'
else
select * from web where content like @keyword + '%'
return
GO
'list.asp頁
<%@ Language=VBScript %>
<% Option Explicit %>
//<%
dim db,conn,myconn
db="/database/proct.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
myconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open MyConn
dim rs
dim sql
dim keyword
dim choose
keyword=request("keyword") '接收頁面傳送的值
choose=request("choose")
set rs=server.createobject("adodb.recordset")
sql="exec tse '"&keyword&"',"&choose&"" '用exec執行tse存儲過程,把keyword,choose給存儲過程傳遞參數
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write("沒有任何記錄!")
response.end
end if
response.write"搜索到的記錄如下:<br><br>"
do until rs.eof
response.write""&rs("id")&":"&rs("title")&"" '列印出文章的ID和標題
response.write"<br><br>"
rs.movenext
loop
'打掃戰場
rs.close
conn.close
set rs=nothing
set conn = nothing
//%>
⑧ eos中如何實現導入導出excel
對 EOS 爭議最大的是拖拽式開發業務邏輯(也就是說的可視化開發),其實拖拽式開發大家並不反對,例如拖拽式進行數據建模,但拖拽開發業務邏輯就未必是好事了。我們設計時即可以用拖拽式開發,也可以用spring bean的方式寫代碼開發業務邏輯。圖形化(拖拽式)開發業務邏輯,最大的用處是處理非同步的邏輯,例如調用一個 WebServices/REST,同步調用時如果被調用方很慢,當前的線程也會被掛死,非同步就沒有這個問題,至少還能夠超時釋放(這里比較復雜,就不細說了),但是非同步的代碼寫起來很復雜,要寫成回調方式,這樣代碼的可讀性就非常差(試想用回調方式調用 3 個 WebServices/REST的代碼結構),這樣用圖形化就比較簡單,執行時會變成非同步