一、js訪問數據庫的一般步驟:
1、 創建一個到數據庫的 ADO 連接
conn = new ActiveXObject("ADODB.Connection");
2、 打開數據庫連接
conn.open(ConnectionString, 'sa', 'password', -1);
3、 創建 ADO 記錄集
rs = new ActiveXObject("ADODB.Recordset");
4、 從記錄集提取您需要的數據
rs.Open(sql, conn); var tempstr = ""; while (!rs.EOF) { tempstr += rs.Fields("Id") + " " + rs.Fields("Name"); rs.moveNext(); //移動向下一個記錄 } alert(tempstr)
5、關閉記錄集
rs.close();
6、 關閉連接
conn.close();
二、ADO對象:
1、Connection
Connection 對象用於創建一個到達某個數據源的開放連接。通過此連接,您可以對一個數據庫進行訪問和操作。
創建
conn =new ActiveXObject("ADODB.Connection");
方法
<1>打開一個連接
conn.open(ConnectionString, UserID, Password,Options);
ConnectionString :通過傳遞包含一系列由分號分隔的 argument = value 語句的詳細連接字符串可指定數據源。
<2>關閉一個連接
conn.close();
<3>執行查詢、SQL 語句、存儲過程或 provider 具體文本。
conn.Execute(CommandText, RecordsAffected, Options)
CommandText: 字符串,包含要執行的 SQL 語句、表名、存儲過程或特定提供者的文本。
RecordsAffected:可選,長整型變量,提供者向其返回操作所影響的記錄數目。
Options:可選,長整型值,指示提供者應如何計算 CommandText 參數,
2、Recordset
Recordset 對象用於容納一個來自數據庫表的記錄集。一個 Recordset 對象由記錄和列(字段)組成。
創建
rs = new ActiveXObject("ADODB.Recordset");
屬性
<1>BOF
如果當前的記錄位置在第一條記錄之前,則返回 true,否則返回 fasle。
<2>EOF
如果當前記錄的位置在最后的記錄之后,則返回 true,否則返回 fasle。
<3>RecordCount
返回一個 Recordset 對象中的記錄數目。
方法
<1>打開一個數據庫元素
rs.open(Source, ActiveConnection, CursorType, LockType, Options);
Source :可選, Command 對象的變量名、SQL 語句、表名、存儲過程調用或持久 Recordset 文件名。
ActiveConnection:可選,有效 Connection 對象變量名;或字符串,包含 ConnectionString 參數。
CursorType : 可選,CursorTypeEnum 值,確定提供者打開 Recordset 時應該使用的游標類型。
LockType : 可選。確定提供者打開 Recordset 時應該使用的鎖定(並發)類型的 LockTypeEnum 值。
Options :可選,用於指示提供者如何計算 Source 參數(如果它代表的不是 Command 對象),或從以前保存 Recordset 的文件中恢復 Recordset。
<2>關閉一個 Recordset。
rs.close();
<3>把多條記錄從一個 Recordset 對象中拷貝到一個二維數組中
rs.GetRows(Rows, Start, Fields)
Rows:可選,指定要檢索記錄數。不指定時將自動檢索 Recordset 對象中的所有記錄。
Start:可選,字符串或長整型,計算得到在 GetRows 操作開始處的記錄的書簽。
Fields :可選,代表單個字段名、順序位置、字段名數組或順序位置,ADO 僅返回這些字段中的數據。
<4>將 Recordset 作為字符串返回。
rs.GetString()
三、ConnectionString
包含用於建立連接數據源的信息。
ADO 支持的參數如下(任何其他參數將直接傳遞到提供者而不經過 ADO 處理)
Provider= |
|
File Name= |
指定包含預先設置連接信息的特定提供者的文件名稱(例如,持久數據源對象)。 |
Remote Provider= |
指定打開客戶端連接時使用的提供者名稱。(僅限於遠程數據服務) |
Remote Server= |
指定打開客戶端連接時使用的服務器的路徑名稱。(僅限於遠程數據服務) |
var ConnectionString = 'Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=HZYL_QZJ;Data Source=192.168.0.5;Connect Timeout=5;Use Procedure for Prepare=1';