顯示具有 ASP 標籤的文章。 顯示所有文章
顯示具有 ASP 標籤的文章。 顯示所有文章

2017年2月16日 星期四

【ASP.MVC】Line 瀏覽器 UserAgent 資料 Line/7.0.1/IAB

UserAgent 記錄如下:

Mozilla/5.0 (Linux; Android 5.0.2; HTC_One_max Build/LRX22G; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 Line/7.0.1/IAB

2011年11月22日 星期二

OFFICE OWC (Office Web Components)

相關教學連結:http://www.cnblogs.com/brucenan999/archive/2008/10/28/1321125.html
EXCEL
OWC :全名(Office Web Components)


只支援到OFFICE 2003 版本: OWC 12 版 (OWC 9、OWC 10、OWC11、OWC12)
每個版本對應的【CLSID】都不一樣,元件安裝也不一樣
使用方式,必需安裝OFFICE ,要不然就是要上微軟下載 OWC 來安裝使用

OWC9 spreadsheet升級至OWC11的若干問題.
由於現有系統從OWC9升級至OWC11,遇到一些小問題,記錄如下,供參考:
1. COM組件升級
     OWC9的CLSID是0002E510-0000-0000-C000-000000000046
     OWC11的CLSID是0002E559-0000-0000-C000-000000000046,直接替換.當然機子上要裝上OWC11的組件.
2. 自動行列寬度調整
     OWC9中的AutoFitColumns()改為Columns.AutoFit()
3. 鎖定單元格
     OWC9: Spreadsheet1.Activesheet.Range("").FreezePanes(X)
     OWC11: Spreadsheet1.ActiveSheet.Range("").Select();
                      Spreadsheet1.ActiveWindow.FreezePanes = true
4. 位置
     OWC9中的HAlignment調整為OWC11的HorizontalAlignment
     值為Constants.xlHAlignRight, xlHAlighLeft and so on.
5. 邊線
     OWC9中的Borders.LineStyle = owcLineStyleSolid值改為Constants.xlContinuous
     關於這一點,有點疑問,在OWC11的說明文檔中,OWC9中支持的owcLineStyleSolid常量還有有描述的,但是在OWC11中使用總是出錯,而改為xlContinuous等類型即可,不知道是怎麼回事,還望知情人共享,謝謝.

版本 類別字串  說明 Office (2000-2002)
9.0 0002E500-0000-0000-C000-000000000046

【office 2000】
0002E510-0000-0000-C000-000000000046

10.0
0002E556-0000-0000-C000-000000000046

11.0
0002E55D-0000-0000-C000-000000000046

【XP】
0002E559-0000-0000-C000-000000000046

2011年10月17日 星期一

UBound 函數


UBound 函數 程式語言參考
  | Version 1 

請參閱

說明
傳回指定陣列某維最大可使用的陣列索引。
語法
UBound(arrayname[dimension])UBound 函數語法有下列幾部份:

組成部分說明
arrayname必要的引數。陣列變數的名稱,遵循標準變數命名規格。
dimension選擇項。表示傳回的是那一維的上限。1 表示第一維,2 表示第二維,依此類推。如果省略 dimension,則預設是 1。
註解
UBound 函數和 LBound 函數一起使用可以決定陣列的大小。使用 LBound 函數來找出陣列每一維的下限。任何維數預設的下限永遠是 0。所以,若陣列的維數如下所示,UBound 傳回如下表的值:

Dim A(100,3,4)

陳述式傳回值
UBound(A, 1)99
UBound(A, 2)2
UBound(A, 3)3

2011年10月12日 星期三

ASP ADO CursorLocation 說明


在Connection物件中CursorLocation的部份
指的就是使用那裏的記錄指標
adUseClient:使用用戶端的記錄指標,因此Cursor就用Client端所管理
adUseServer:使用伺服器端的記錄指標,因此Cursor就用Server端所管理
而CursorLocation這個屬性只有在Connection關閉的狀況下才能變更,也就是說Connection開啟了就變成了「唯讀」
CursorLocation的預設值是....adUseServer
這樣的解釋看似很簡單,但背後所代表的涵意就差很大了
這差異一下子也難以解釋清楚,筆者借用了網路上某一篇文章
這篇文章不是筆者的文章,它是來自DBmaker網站:http://www.dbmaker.com.tw/reference/tools/ado-sgml/x164.html
文章如下



先討論 Recordset 物件的 CursorLocation 特性對其有何影響。 ADO 對游標的處理可以交由 DBMaker 處理(CursorLocation 特性值設為 adUseServer), 或是交由 ADO 的 Cursor Engine 處理(CursorLocation 特性值設為 adUseClient)。

ADO 2.0 的 Cursor Engine 開啟記錄集的方式是將符合記錄的所有資料, 從資料庫載入到它所在的前端電腦上(請參考"2.5游標與鎖的型態")。 換句話說對記錄集的處理,除非是將資料更新回資料庫, 否則大部份的功能都和後端資料庫系統無關,而由 Cursor Engine 自行處理掉。 既然所有的資料都在前端電腦,就如同 dBase 此類的桌上型資料檔的處理方式一樣, 可以移動游標、可以對記錄集作排序(Recordset 的 Sort 特性, 若有需要 ADO 還會為記錄集建立暫時的索引檔)、支援 Bookmark 特性、 批次更新(每筆更改的記錄暫不反應到後端資料庫內容, 直到執行批次更新(UpdateBatch方法)時,才全部反應回資料庫)等等。
不過使用 ADO 2.0 的 Cursor Engine 有兩點要注意: 第一是整個記錄集經過網路傳到前端電腦,這等待的時間能不能忍受; 第二是整個記錄集都是暫存於記憶體處理, 所以必需保證記錄集的大小不能超過前端電腦可用記憶體的大小(包含實體與虛擬記憶體)。 第一個問題可以用非同步的方法擷取資料,資料傳回的過程中, 讓程式去執行別的工作。 第二個問題其實是可以用前端電腦的檔案系統來暫存超出記憶體所能容納的資料, 不知道將來的版本會不會決解此問題。讀者若有與趣, 可以將 CursorLocation 特性設為 adUseClient, 然後用 Open 方法透過網路向後端資料庫執行查詢表格指令, 並透過網路傳回超過一、二百 M 位元組資料的記錄集。 讀者就會發現透過網路傳回一、二百 M 位元組的資料其實需要一段時間, 而且電腦可用記憶體的容量將逐漸減少直到被耗盡為止。

將 CursorLocation 特性設為 adUseServer, 表示游標的實作是交由 DBMaker 來完成。認識 ODBC 介面的朋友, 對於 ODBC 的 Extended Fetch 的函數應該不陌生, ADO 2.0 的 Server Cursor 就是利用 Extended Fetch 來操作 DBMaker 資料庫。
利用 ADO 存取 DBMaker 3.5,將 CursorLocation 特性設為 Server Cursor 時, 有一些限制請 DBMaker 的使用者注意:

  • MaxRecords、RecordCount、AbsolutePosition、AbsolutePage、PageSize、PageCount、 Bookmark、Sort等特性沒有作用;
  • 游標型態只支援動態型態(這也是為何上述的特性無法支援的原因);
  • 查詢指令含有ORDER BY子句所得到的記錄集只能讀無法更新;
  • 不支援批次更新作業;
  • 不支援非同步處理(但ADO提供多線串(thread)的能力來執行非同步的處理);
  • 不支援多重結果集(即一個執行的SQL指令,不論是查詢命令或是執行預存函數,傳回不只 一個結果集)

2011年9月26日 星期一

ASP ADO


筆記筆記記起來

雖然目前我完全不會用。
ASP ADO整理

ADO (Active Data object)

Microsoft 為了解決整體企業資料存取需求所提出的策略方案 UDA(Universal Data Access)之一,此方案包括 ADO,OLE DB以及ODBC。 ADO可以透過 OLE DB或ODBC驅動程式來存區資料庫。如果同時都有時建議使用OLE DB,因為 OLE DB的執行效能較ODBC來的高。

ADO的物件

Connection 物件:責開啟與連結到資料來源的物件。
Command  物件:負責傳送能被資料來源所執行命令的物件,命令是一文字字串,通常是一SQL敘述。
Recordset 物件:負責存取資料庫內容的物件,為一資料紀錄集。
Parameter 物件:表示命令的參數。
Field 物件:表示資料記錄的欄位。
Error 物件:表示資料來源傳回的錯誤。

當我們使用完資料庫連結後可以使用Close方法將該連結關閉,使用Close的方法可以將最後留在緩衝區的資料作最後的交付動作以免有資料流失的情況發生

Access 2000 資料庫連結的網頁

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=Microsoft.Jet.OLEDB.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../Book.mdb")
DBConnection.Open ConnectionString

ODBC 方法連結Access 2000

ASP 可透過 ODBC DSN (Data Source Name)來與資料庫做連結。
DBConnection.Open "資料庫來源名稱"

SQL Server 7.0 連結

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=SQLOLEDB.1;Server=W2k;UID=SiteAdmin;PWD=123"
DBConnection.Open ConnectionString

有密碼保護的Access 2000

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=Microsoft.Jet.OLEDB.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../Book.mdb")
DBConnection.Open ConnectionString & ";Jet OLEDB:Database Password=12345"

Excel 2000 資料庫連結
  Excel 中一個檔案是一個資料庫,而每個活頁簿的Sheet是一個資料表

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.Mappath("../Book.xls")
DBConnection.Open ConnectionString

連結TEXT 檔案

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Driver={Microsoft Text Driver (*.txt;*.csv)};DBQ=" & Server.Mappath("../")
DBConnection.Open ConnectionString

之前用Connection 物件來建立連結並使用Recordset物件來運用傳回的資料

Recordset 物件的一些重要屬性與方法:

RecordSet(i).Name
傳回Recordset中第i個欄位的名稱。
RecordSet("欄位名稱") 
傳回指定欄位名稱的資料內容。

RecordSet.Fields.Count  
傳回Recordset中的欄位數。
RecordSet.RecordCount
傳回Recordset中資料錄的筆數。
RecordSet(i)
傳回RecordSet目前紀錄中的第i個欄位資料。
RecordSet.BookMark
傳回設定的書籍資料以儲存現在紀錄的位置,記錄位置供日後返回使用。
RecordSet.AbsolutePostition
將指標移致RecordSet中的某一筆資料上。
RecordSet.PageSize 
設定每頁顯示的資料筆數。
RecordSet.PageCount 
傳回分頁後的總頁數。
RecordSet.AbsolutePage
傳回目前所在的頁數。

RecordSet.BOF
判斷指標是否超過最前面,如果是則傳回True,否則傳回False。
RecordSet.EOF
判斷指標是否超過最後面,如果是則傳回True,否則傳回False。

RecordSet.MoveFirst
將資料錄指標移至第一筆。
RecordSet.MoveLast
將資料錄指標移至最後一筆。
RecordSet.MoveNext
將資料指標往後移一筆。
RecordSet.MovePrevious
將資料指標往前移一筆。
RecordSet.GetRows
可將Recordset中的資料儲存至陣列中。

RecordSet.AddNew
RecordSet.AddNew 欄位名稱陣列,欄位值陣列,資料庫新增
RecordSet.Update
RecordSet(”欄位名稱”)= 預修改的值,RecordSet.Update,資料庫更新
RecordSet.Delete
資料刪除,刪除後資料已不存在,需小心指標位置
RecordSet.Find
RecordSet.Find “欄位名稱 = ‘尋找的資料值’”

Recordset開啟資料表的語法

Set  RsObject  =  Server.CreateObject(”ADODB.Recordset:”)
RsObject.Open 資料來源,資料連結,指標型態,鎖定方式
資料來源:指定資料表名稱
資料連結:指定一個已Connection的物件
指標型態:
0:只能向前移動的指標,此為預設值
1:無法讀取其他使用著新增之資料,更新之資料會立即反應
2:可以及時反應其他使用著操作資料庫之狀況
3:無法及時反映其他使用著操作相同資料庫的狀況用於搜尋或新增記錄時使用
鎖定方式:
1:將Recordset 開啟為唯讀狀態,此為預設值
2:當使用著對Recordset 中的某筆資料作編輯時店鎖定記錄
3:當使用著呼叫Update方法對Recordset做更新時才鎖定記錄
4:使用著做批次更新時才鎖定記錄

Access 2000 資料庫連結的網頁
Set DBConnection = Server.CreateObject(”ADODB.Connection”)
ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0;Data Source=”& Server.MapPath(”../boo.mdb”)
DBConnection.Open ConnectionString
Set RS = Server.CreateObject(”ADODB.Recordset”)
RS.Open “資料表名稱”,DBConnection

Command 物件
Command 物件的主要用途在於執行不會傳回記錄集的SQL敘述
Set CmdObj = Server.CreateObject(“ADODB.Command”)
Set CmdObj.ActiveConnection = DBConnection
CmdObj.CommandText = SQL_Statements
CmdObj.Execute

範例 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("book.mdb")
SQL ="Select * from 姓名" 
Set RS = Conn.Execute(SQL)

ASP ADO


筆記筆記記起來

雖然目前我完全不會用。
ASP ADO整理

ADO (Active Data object)

Microsoft 為了解決整體企業資料存取需求所提出的策略方案 UDA(Universal Data Access)之一,此方案包括 ADO,OLE DB以及ODBC。 ADO可以透過 OLE DB或ODBC驅動程式來存區資料庫。如果同時都有時建議使用OLE DB,因為 OLE DB的執行效能較ODBC來的高。

ADO的物件

Connection 物件:責開啟與連結到資料來源的物件。
Command  物件:負責傳送能被資料來源所執行命令的物件,命令是一文字字串,通常是一SQL敘述。
Recordset 物件:負責存取資料庫內容的物件,為一資料紀錄集。
Parameter 物件:表示命令的參數。
Field 物件:表示資料記錄的欄位。
Error 物件:表示資料來源傳回的錯誤。

當我們使用完資料庫連結後可以使用Close方法將該連結關閉,使用Close的方法可以將最後留在緩衝區的資料作最後的交付動作以免有資料流失的情況發生

Access 2000 資料庫連結的網頁

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=Microsoft.Jet.OLEDB.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../Book.mdb")
DBConnection.Open ConnectionString

ODBC 方法連結Access 2000

ASP 可透過 ODBC DSN (Data Source Name)來與資料庫做連結。
DBConnection.Open "資料庫來源名稱"

SQL Server 7.0 連結

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=SQLOLEDB.1;Server=W2k;UID=SiteAdmin;PWD=123"
DBConnection.Open ConnectionString

有密碼保護的Access 2000

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Provider=Microsoft.Jet.OLEDB.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../Book.mdb")
DBConnection.Open ConnectionString & ";Jet OLEDB:Database Password=12345"

Excel 2000 資料庫連結
  Excel 中一個檔案是一個資料庫,而每個活頁簿的Sheet是一個資料表

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.Mappath("../Book.xls")
DBConnection.Open ConnectionString

連結TEXT 檔案

Set DBConnection = Server.CreateObject("ADODB.Connection")
ConnectionString = "Driver={Microsoft Text Driver (*.txt;*.csv)};DBQ=" & Server.Mappath("../")
DBConnection.Open ConnectionString

之前用Connection 物件來建立連結並使用Recordset物件來運用傳回的資料

Recordset 物件的一些重要屬性與方法:

RecordSet(i).Name
傳回Recordset中第i個欄位的名稱。
RecordSet("欄位名稱") 
傳回指定欄位名稱的資料內容。

RecordSet.Fields.Count  
傳回Recordset中的欄位數。
RecordSet.RecordCount
傳回Recordset中資料錄的筆數。
RecordSet(i)
傳回RecordSet目前紀錄中的第i個欄位資料。
RecordSet.BookMark
傳回設定的書籍資料以儲存現在紀錄的位置,記錄位置供日後返回使用。
RecordSet.AbsolutePostition
將指標移致RecordSet中的某一筆資料上。
RecordSet.PageSize 
設定每頁顯示的資料筆數。
RecordSet.PageCount 
傳回分頁後的總頁數。
RecordSet.AbsolutePage
傳回目前所在的頁數。

RecordSet.BOF
判斷指標是否超過最前面,如果是則傳回True,否則傳回False。
RecordSet.EOF
判斷指標是否超過最後面,如果是則傳回True,否則傳回False。

RecordSet.MoveFirst
將資料錄指標移至第一筆。
RecordSet.MoveLast
將資料錄指標移至最後一筆。
RecordSet.MoveNext
將資料指標往後移一筆。
RecordSet.MovePrevious
將資料指標往前移一筆。
RecordSet.GetRows
可將Recordset中的資料儲存至陣列中。

RecordSet.AddNew
RecordSet.AddNew 欄位名稱陣列,欄位值陣列,資料庫新增
RecordSet.Update
RecordSet(”欄位名稱”)= 預修改的值,RecordSet.Update,資料庫更新
RecordSet.Delete
資料刪除,刪除後資料已不存在,需小心指標位置
RecordSet.Find
RecordSet.Find “欄位名稱 = ‘尋找的資料值’”

Recordset開啟資料表的語法

Set  RsObject  =  Server.CreateObject(”ADODB.Recordset:”)
RsObject.Open 資料來源,資料連結,指標型態,鎖定方式
資料來源:指定資料表名稱
資料連結:指定一個已Connection的物件
指標型態:
0:只能向前移動的指標,此為預設值
1:無法讀取其他使用著新增之資料,更新之資料會立即反應
2:可以及時反應其他使用著操作資料庫之狀況
3:無法及時反映其他使用著操作相同資料庫的狀況用於搜尋或新增記錄時使用
鎖定方式:
1:將Recordset 開啟為唯讀狀態,此為預設值
2:當使用著對Recordset 中的某筆資料作編輯時店鎖定記錄
3:當使用著呼叫Update方法對Recordset做更新時才鎖定記錄
4:使用著做批次更新時才鎖定記錄

Access 2000 資料庫連結的網頁
Set DBConnection = Server.CreateObject(”ADODB.Connection”)
ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0;Data Source=”& Server.MapPath(”../boo.mdb”)
DBConnection.Open ConnectionString
Set RS = Server.CreateObject(”ADODB.Recordset”)
RS.Open “資料表名稱”,DBConnection

Command 物件
Command 物件的主要用途在於執行不會傳回記錄集的SQL敘述
Set CmdObj = Server.CreateObject(“ADODB.Command”)
Set CmdObj.ActiveConnection = DBConnection
CmdObj.CommandText = SQL_Statements
CmdObj.Execute

範例 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("book.mdb")
SQL ="Select * from 姓名" 
Set RS = Conn.Execute(SQL)